Ich benutze Delphi 6 Pro. Ich brauche ein Ereignis, das ausgelöst wird, wenn meine Anwendung definitiv heruntergefahren wird, aber bevor Formulare zerstört werden. Ich dachte darüber nach, WM_QUIT-Nachrichten im Hauptformular WndProc () abzufangen, aber das funktionierte nicht, da die Formulare zu zerstören begannen, bevor ich eine WM_QUIT-Nachricht sah. Ich habe mich gefragt, ob es ein Delphi-Standardereignis gibt, mit dem ich Code an dieser Stelle der Abschaltkette von Ereignissen ausführen kann? Ich kann das FormClose () - Ereignis des Hauptformulars nicht verwenden, da es nicht garantiert wird, dass es ausgelöst wird, und das FormDestroy () - Ereignis ist zu spät. Irgendwelche Ideen?
Sie werden keine WM_QUIT
messages in der Methode WndProc()
ankommen sehen, da WM_QUIT
ein Signal ist, damit Nachrichtenschleifen nicht mehr ausgeführt werden können und daher normalerweise nicht an eine Fensterprozedur gesendet werden.
Es gibt kein bestimmtes Ereignis für das, was Sie fragen. Sie können jedoch die .dpr-Datei Ihres Projekts öffnen und den Code, den Sie nach dem Aufruf benötigen, nach Application.Run
exits setzen. Die Nachrichtenschleife wird nicht mehr ausgeführt, aber die Objekte Application
und MainForm
wurden noch nicht freigegeben.
Der beste Weg, dies zu tun (und ich habe es lange im Auge behalten), besteht darin, eine Prozedur über die Routine AddTerminateProc () in SysUtils.pas anzuhängen. Dies funktioniert jedes Mal und ich benutze es seit Jahren (außer Sie töten den Prozess über den Task-Manager).
Tags und Links delphi terminate application-shutdown