Registriert seit: 7. Jan 2006
Ort: Pulheim Brauweiler
464 Beiträge
Delphi 2010 Professional
|
Re: Win7: Problem mit Speichern von Daten in OnClose
6. Mär 2010, 12:42
Hi,
geht das nicht alles am Thema vorbei ?
Er will doch nur richtig speichern, wenn Windows runtergefahren wird, und nicht dieses verhindern.
Es gibt zu diesem Zweck 2 ( in Worten ZWEI ) Meldungen, die zu beachten sind.
WM_QUERYENDSESSION holt die Erlaubnis ein herunterfahren zu können. Das Resultat ist nicht, dass heruntergefahren wird.
WM_ENDSESSION erst meldet, wir fahren jetzt herunter, beeil dich mit dem Speichern. Das tritt nämlich nur ein, wenn nicht jemand etwas gegen das herunterfahren einzuwenden hatte.
und jetzt kommts: Man kann sich dann nicht mehr darauf verlassen, dass OnClose aufgerufen wird (ist jedenfalls meine Erfahrung). Daher folgende Empfehlung:
Erstelle eine Methode z.B. procedure ProgrammEnde, die alles macht, was du sonst in OnClose machen würdest.
Rufe diese Methode in OnClose und in der Behandlung von WM_ENDSESSION auf. Merke dir in dieser Methode, dass du sie schon ausgeführt hast, damit sie nicht zweimal alles macht falls OnClose doch noch kommt.
Diese Vorgehensweise habe ich in allen unseren Programmen auf dem Server, und das sind ca 20 Stück. Es funktioniert unter Win2k bis Win2k8 bestens, dann sollte das auch mit Win7 gehen, da Win2k8=Win7 Server.
Viel Erfolg
|