![]() |
Form nach Thread schließen
Ich führe einen TThread aus, sobald dieser abgearbeitet wurde, soll das aktuelle Form schließen.
Wenn ich das im Thread schreibe, erhalte ich logischerweise eine Zugriffsverletzung. Wie kann ich das aber nun am elegantesten realisieren? |
AW: Form nach Thread schließen
TThread hat ein OnTerminate Event (oder so) - das verknüpfst du mit einer Methode deines Formulars. Darin kannst du dann einfach Release() aufrufen.
|
AW: Form nach Thread schließen
Das versteh ich nun noch nicht ganz.
Mit welcher Methode des Formulars soll ich das denn verknüpfen? Und wieso Release? |
AW: Form nach Thread schließen
Formulare sollten mit Release freigegeben werden. Und die Methode musst Du halt schreiben und zuweisen.
|
AW: Form nach Thread schließen
Delphi-Quellcode:
Procedure TForm.MeineInfoWennThreadFertig(Sender:TObject);
begin Close; end; //.... //.... Mythread := TMYthread.Create; MyThread.OnTerminate := MeineInfoWennThreadFertig; //... |
AW: Form nach Thread schließen
Ok verstanden, danke.
|
AW: Form nach Thread schließen
Ich hol den Thread nochmal hoch aus dem Grund, das mein OnTerminate nicht funktionieren will.
Delphi-Quellcode:
Rufe ich auf und erhlate die Meldung beim Compiler: E2009 Inkompatible Typen: 'Liste der Parameter ist unterschiedlich'
EmailSendThread.OnTerminate:= MailVersandt;
MailVersandt hat allerdings gar keine Parameter angegeben. |
AW: Form nach Thread schließen
Die zuzuweisende Methode muss ein TNotifyEvent sein, muss/darf also lediglich den Sender-Parameter aufweisen.
|
AW: Form nach Thread schließen
Nochmal zum Verständnis
in private deklariert der Klasse:
Delphi-Quellcode:
Thread wird so aufgerufen in der Klasse selbst:
procedure MailVersandt;
Delphi-Quellcode:
EmailSendThread:= TEmailSendThread.Create(msg, smtp); EmailSendThread.OnTerminate:= MailVersandt; EmailSendThread.Start; Was muss ich daran ändern? |
AW: Form nach Thread schließen
Delphi-Quellcode:
procedure Mailversandt(Sender: TObject);
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:08 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-2025 by Thomas Breitkreuz