![]() |
Delphi-Version: 5
OnTerminate Eventhandler definieren
Hallo zusammen,
erstmal vorab, ich bin neu hier und würde euch bitten mich darauf hinzuweisen wenn ich irgendetwas unklar definiere oder mein Quellcode im Forum nicht gut lesbar erscheint. Danke ! Nun zu meiner Situation: Ich erstelle zur Laufzeit n- Threads die Parallel eine "Arbeit" verrichten. Ich möchte das Event "OnTerminate" aller Threads mit einer Methode aus meinem Hauptprogramm "überschreiben". Also quasi alle Threads nach Beendigung ihrer Arbeit diese Methode aufrufen lassen in der ich dann prüfe ob alle fertig sind usw. . Meine Frage, wie definiere ich im Hauptprogramm diese Methode mit der ich das Thread.OnTerminate Event "überschreiben" kann?
Delphi-Quellcode:
Ich erhalte die Fehlermeldung "Inkompatible Typen: Liste der Parameter ist unterschiedlich".
TMain = class(TForm)
private procedure ThreadErstellen; procedure MeineMethode(Sender: TObject); public end; procedure TMain.ThreadErstellen; begin Thread1 := TThread.Create(True); Thread1.OnTerminate := MeineMethode; end; procedure TMain.MeineMethode; begin //Anweisung end; Danke schonmal an alle! |
AW: OnTerminate Eventhandler definieren
Ich hätte jetzt eher eine Meldung bzgl. ungenügender Forward-Deklaration erwartet.
Zitat:
Delphi-Quellcode:
Und benutz doch bitte statt der Code- die Delphi-Tags (das ist die Schaltfläche mit dem Helm im Beitragseditor), dann hast Du auch schönes Syntax-Highlighting.
procedure TMain.MeineMethode(Sender: TObject);
begin //Anweisung end; P.S.: Willkommen in der DP :dp: |
AW: OnTerminate Eventhandler definieren
Habe die Delphi-Tags ergänzt.
|
AW: OnTerminate Eventhandler definieren
Hat sich erledigt, habe es gelöst.
Habe mit einer with-Anweisung gearbeitet und da hat sich ein Fehler eingeschlichen
Delphi-Quellcode:
TMain = class(TForm) private procedure ThreadErstellen; procedure Terminate(Sender: TObject); public end; procedure TMain.ThreadErstellen; begin Thread1 := TThread.Create(True); with Thread1 do begin OnTerminate := Terminate;//Das Problem war, dass ich die Methode "Terminate" genannt habe //Die Thread-Klasse besitzt ja selbst schon eine Terminate Routine end; //of with end; procedure TMain.MeineMethode; begin //Anweisung end; |
AW: OnTerminate Eventhandler definieren
Jaja, das böse With, zumal das in diesem Fall ja sogar mehr Tipparbeit bedeutet. Ich würde es einfach umschreiben.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:42 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz