Forum: Object-Pascal / Delphi-Language
Delphi
by jfheins,
20. Feb 2009
Zu der letzten Frage: Du kannst im Thread hochzählen, und gucken ob der Wert erreicht ist. Wenn das der Fall ist, rufst du ein Event im Hauptthread auf, in dem das ausgeführt wird, was passieren soll.
Um eine Methode im MainThread auszuführen musst du synchronize() verwenden.
Also z.B.TMyThread = class(TThread)
i : Integer;
MainForm: TForm1;
// ...
procedure TMyThread.Execute()
Forum: Object-Pascal / Delphi-Language
Delphi
by jfheins,
20. Feb 2009
Du hast doch im Thread die IdFTP-Klasse. Prüfe im OnWork of Terminated wahr ist. Wenn dem so ist, solltest du den Download beenden.
Damit kannst du den Thread per ftpload.Terminate; beenden.
Wenn du etwas machen möchtest, wenn der Thread beendet wurde brauchst du nicht ständig Application.Processmessages aufrufen (womit du, nebenbei bemerkt, das "warten auf neue Nachrichten" ad absurdum...