Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Auf Abmelden/Herunterfahren in onClose reagieren (https://www.delphipraxis.net/142347-auf-abmelden-herunterfahren-onclose-reagieren.html)

ChrisE 28. Okt 2009 15:57

Re: Auf Abmelden/Herunterfahren in onClose reagieren
 
Folgendes solltest du doch jetzt lösen können:

Wenn du wie in meinem Beispielprojekt deinem MainForm eine WMQueryEndSession verpasst kannst du bei WM_QUERYENDSESSION ja zuerst eine Boolsche Variable setzen. Der Trick ist erst die Variable setzten und dann erst inherited auf zu rufen :-)
Delphi-Quellcode:
procedure TMainForm.WMQueryEndSession(var Message: TMessage);
begin
  FWmQueryEndsession := TRUE;
  inherited;
end;
Wenn du jetzt in deine CloseQuery kommst dort einfach nur abfragen ob die Var gesetzt ist. Wenn ja, dann kommt der Aufruf zum schließen wohl nicht vom Anwender per [X]-Knopf sondern vom System wegen Abmelden / Runterfahren.

Denn du willst es ja glaube ich genau so, oder? ->
Zitat:

Zitat von The_Unknown
Ich möchte, wenn ich das MainForm schließe, dass eine Nachricht kommt "Achtung: Das Programm ist immernoch geöffnet, nur dass es jetzt neben der Systemuhr ist..." (die Nachricht kommt natürlich nur 1x und dann nie wieder). Wenn nun allerdings der User herunterfährt und das Hauptfenster ist noch offen und die Meldung wurde noch nie angezeigt, dann kommt die Meldung beim Herunterfahren, was etwas unglücklich ist.

Greez, Chris

The_Unknown 31. Okt 2009 19:13

Re: Auf Abmelden/Herunterfahren in onClose reagieren
 
Jetzt funktioniert es tatsächlich :thumb:

Kann es sein, dass inherited; den Konstruktor der Superklasse von WMQUERYENDESSEION aufruft (ähnlich zu super(); in Java)?

Jetzt fehlt mir nur noch eine Antwort auf ein weiteres - anscheinend nicht minder verzwicktes - Problem, wo mir niemand antwortet :(
--> http://www.delphipraxis.net/internal...094740#1094740

Jakson 18. Jan 2010 12:59

Re: Auf Abmelden/Herunterfahren in onClose reagieren
 
Hi

Wie kann ich den erkennen ob nach dem ich das WM_QUERYENDSESSION reagiert habe (IsShutingDown = True) wer anderer das Herunterfahren abgebrochen hat?

Gibts da ein WM_ContinueSession oder so auf das ich reagieren könnte?

Danke Jakson

[edit]
Ich hab die frage noch einmal in einem neuen Thread gestellt http://www.delphipraxis.net/internal...121830#1121830
[/edit]


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:44 Uhr.
Seite 3 von 3     123   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz