Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Thread abhorchen (https://www.delphipraxis.net/92521-thread-abhorchen.html)

flowj 21. Mai 2007 17:04


Thread abhorchen
 
Hallo,

ich erzeuge in meinem Hauptprogramm ein THread. Irgendwann wird der Thread terminiert und das FOrmular soll sich dann automatisch schließen. Wie finde ich im Hauptprogramm heraus, wann der Thread terminiert ist?

Gruss

flowj

Apollonius 21. Mai 2007 17:08

Re: Thread abhorchen
 
1. meinThread.onTerminate setzen
2. meinThread.Terminated abfragen

shmia 21. Mai 2007 17:12

Re: Thread abhorchen
 
Zitat:

Zitat von flowj
Wie finde ich im Hauptprogramm heraus, wann der Thread terminiert ist?

Der Thread besitzt das Event OnTerminate.
Dein Formular einen dazu passenden Eventhandler:
Delphi-Quellcode:
procedure TForm1.ThreadTerminateHandler(Sender:TObject);
begin
   Close; // Formular schliesen
end;
Das Event muss jetzt noch mit dem Eventhandler verbunden werden:
Delphi-Quellcode:
 FMythread := TThread.Create(...);
 FMythread.OnTerminate := self.ThreadTerminateHandler;
PS: Fehler korrigiert

flowj 22. Mai 2007 09:08

Re: Thread abhorchen
 
Vielen Dank für euere Antworten, aber können folgende Zeilen von shmia stimmen?

Delphi-Quellcode:
FMythread := TThread.Create(...);
FMythread := self.ThreadTerminateHandler;

chaosben 22. Mai 2007 09:10

Re: Thread abhorchen
 
Zitat:

Zitat von flowj
... können folgende Zeilen von shmia stimmen?

Delphi-Quellcode:
FMythread := TThread.Create(...);
FMythread := self.ThreadTerminateHandler;

Wahrscheinlich nicht. Ehern so:
Delphi-Quellcode:
FMythread.OnTerminate := self.ThreadTerminateHandler;


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:19 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