Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Programm ignoriert FormDestroy wenn im Systemtray (https://www.delphipraxis.net/44508-programm-ignoriert-formdestroy-wenn-im-systemtray.html)

JPSelter 20. Apr 2005 09:49


Programm ignoriert FormDestroy wenn im Systemtray
 
Ich sage meinem Programm, das ständig im Systemtray nebenherläuft, dass es beim Herunterfahren von Windows einen bestimmten Wert in eine TXT Datei schreiben soll. Diese Routine steht in der FormDestroy Prozedur. Aber wenn das Programm minimiert ist und vom System geschlossen wird, lässt er FormDestroy einfach weg. Was kann ich dagegen tun?

marabu 20. Apr 2005 11:04

Re: Programm ignoriert FormDestroy wenn im Systemtray
 
Dein Programm ignoriert offenbar die Aufforderung zum Beenden und wird zwangsweise beendet - ohne FormDestroy.

alcaeus 20. Apr 2005 11:13

Re: Programm ignoriert FormDestroy wenn im Systemtray
 
Hi JPSelter,

beim Herunterfahren wird Hier im Forum suchenWM_QUERYENDSESSION an alle Anwendungen gesendet. Einfach auf diese Message reagieren, und fertig ;)

Greetz
alcaeus

Robert Marquardt 20. Apr 2005 11:45

Re: Programm ignoriert FormDestroy wenn im Systemtray
 
Erst kommt WM_QUERYENDSESSION und dann WM_ENDSESSION. Danach wird das Programm nicht mehr korrekt beendet sondern gekillt.
Es kommt kein WM_QUIT und daher weden auch die Komponenten/Forms nicht mehr freigegeben.
Also einen WM_ENDSESSION-Handler schreiben und dort selber FormDestroy aufrufen.

JPSelter 27. Apr 2005 09:12

Re: Programm ignoriert FormDestroy wenn im Systemtray
 
Wie schaffe ich es denn, dass mein Programm beim herunterfahren des PCs nochmal kurz alles blockiert und auf meine Bestätigung wartet? So ungefähr wie bei Word/Excel, wenn man am Ende erst gefragt wird, ob die Änderungen gespeichert werden sollen.

JPSelter 27. Apr 2005 09:37

Re: Programm ignoriert FormDestroy wenn im Systemtray
 
OK, habs hinbekommen :)

Matze 27. Apr 2005 09:41

Re: Programm ignoriert FormDestroy wenn im Systemtray
 
Das nächste Mal wäre es schön, wenn du sagen würdest, wie du das gemaht hast (im OnCloseQuery CanClose auf false stellen, oder so in der Art), für die, die das gleiche Problem haben.

Robert Marquardt 27. Apr 2005 09:58

Re: Programm ignoriert FormDestroy wenn im Systemtray
 
Das macht man einfach mit einem Dialog im WM_QUERYENDSESSION Handler.
Je nach Ergebnis des Dialogs kann man dann auch noch mit dem richtigen Rueckgabewert Windows dazu bringen nicht herunterzufahren.
Dazu ist WM_QUERYENDSESSION schliesslich da.

DGL-luke 27. Apr 2005 12:45

Re: Programm ignoriert FormDestroy wenn im Systemtray
 
echt? man kann windows sagen, es soll nicht herunterfahren?

Robert Marquardt 27. Apr 2005 13:31

Re: Programm ignoriert FormDestroy wenn im Systemtray
 
Es schadet nicht die Win32 Hilfe zu WM_QUERYENDSESSION zu lesen.
Es schadet auch nicht das Platform SDK von Microsoft installiert zu haben.
http://www.microsoft.com/msdownload/.../downlevel.htm


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