AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Neues Event in Form oder Kommunikations zwischen Thread und Form
Thema durchsuchen
Ansicht
Themen-Optionen

Neues Event in Form oder Kommunikations zwischen Thread und Form

Ein Thema von danieldelphi · begonnen am 1. Apr 2015 · letzter Beitrag vom 1. Apr 2015
Antwort Antwort
danieldelphi

Registriert seit: 12. Mär 2015
38 Beiträge
 
#1

Neues Event in Form oder Kommunikations zwischen Thread und Form

  Alt 1. Apr 2015, 14:19
Hallo zusammen,

ich habe folgendes Problem, ich habe eine Form, in der ich einen Thread starte, jetzt will ich am ende wissen ob der thread seine arbeit beendet hat und wenn ja will ich darauf reagieren, genauer gesagt einen neuen start des threads ermöglichen.
Etwas allgemeiner beschrieben kann man sagen ich habe eine Form die einen thread in einer anderen unit startet und dann am ende wieder mit der form kommunizieren soll, wie geht man dabei am besten vor? Kann ich auf den eventhandler des forms zugreifen und ein neues event starten? das problem dabei ist, dass ich dafür den thread iwie mit dem form kommunizieren lassen muss oder? denn beide unints in die uses klasse der anderen schreiben geht ja nicht.

Hier ei bisschen code des problems.

Delphi-Quellcode:
unit sterb;

interface

uses Windows, Messages, SysUtils, Classes, Controls, Forms, Dialogs,
  StdCtrls;

type
  TMyThread = class(TThread)
  procedure Execute; override;
end;

procedure sterb_schleife;



implementation

procedure TMyThread.Execute;
begin
  sterb_schleife();
end;


usw...

end
das form:
Delphi-Quellcode:

unit Checkdata;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, deklara, sterb, Grids, DirOutln, ShellAPI, ShlObj, registry,
  struktur, CheckLst, ExtCtrls;



type
  TForm2 = class(TForm)
    StartButton: TButton;
    Inputedit: TEdit;
    Outputedit: TEdit;
    Formatbox: TComboBox;
    Meldbox: TComboBox;
    Outputbtn: TButton;
    Inputbtn: TButton;
    dlgmanagerpath: TOpenDialog;
    Memo1: TMemo;
    countmemo: TMemo;
    reportbutton: TButton;
    reportedit: TEdit;
    Savereport: TSaveDialog;
    Label1: TLabel;
    Label2: TLabel;
    Helpbtn: TButton;
    Cancelbtn: TButton;
    GroupBox1: TGroupBox;
    GroupBox2: TGroupBox;
    GroupBox3: TGroupBox;
    CheckBox1: TCheckBox;
    procedure OutputbtnClick(Sender: TObject);
    procedure StartButtonClick(Sender: TObject);
    procedure MeldboxChange(Sender: TObject);
    procedure FormatboxChange(Sender: TObject);
    procedure InputbtnClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure reportButtonClick(Sender: TObject);
    procedure sep_rep();
    procedure sep_plau();
    procedure HelpbtnClick(Sender: TObject);
    procedure CancelbtnClick(Sender: TObject);
    procedure CheckBox1Click(Sender: TObject);
  end;

function BrowseDialog(const Title: string; const Flag: integer): string;
var
  Form2: TForm2;
implementation

{$R *.dfm}

[...]


procedure TForm2.StartButtonClick(Sender: TObject);
var
  fehler:string;
begin
  meldung := memo1.lines;
  dsnr :=countmemo.lines;
  if checkstart(fehler) then begin
    meldung.add('Durchlauf gestartet');
    sterbthread := sterb.TMyThread.Create(False);
    Cancelbtn.Enabled:=true;
    StartButton.Enabled:=false;
  end
  else
    ShowMessage(fehler);
end;

[..]
end
  Mit Zitat antworten Zitat
danieldelphi

Registriert seit: 12. Mär 2015
38 Beiträge
 
#2

AW: Neues Event in Form oder Kommunikations zwischen Thread und Form

  Alt 1. Apr 2015, 14:46
bzw. wie kann ich die klasse die den thread startet auf das ende des threads reagieren lassen.?
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.007 Beiträge
 
Delphi 12 Athens
 
#3

AW: Neues Event in Form oder Kommunikations zwischen Thread und Form

  Alt 1. Apr 2015, 15:01
Warum nimmst du nicht den OnTerminate-Event des Threads? Der wird netterweise gleich im VCL-Thread ausgeführt.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
danieldelphi

Registriert seit: 12. Mär 2015
38 Beiträge
 
#4

AW: Neues Event in Form oder Kommunikations zwischen Thread und Form

  Alt 1. Apr 2015, 15:24
Warum nimmst du nicht den OnTerminate-Event des Threads? Der wird netterweise gleich im VCL-Thread ausgeführt.
Damit komme ich nicht an die übergeornete Klasse, oder?
  Mit Zitat antworten Zitat
danieldelphi

Registriert seit: 12. Mär 2015
38 Beiträge
 
#5

AW: Neues Event in Form oder Kommunikations zwischen Thread und Form

  Alt 1. Apr 2015, 15:34
Warum nimmst du nicht den OnTerminate-Event des Threads? Der wird netterweise gleich im VCL-Thread ausgeführt.
vergiss was ich gesagt habe,

genau das habe ich gesucht!!

danke
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:06 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz