![]() |
Programm beenden
Hallo an alle,
ich habe ein kleines Problem, was sicherlich leicht zu lösen ist. Ich habe im OnCloseQuery-Ereignisbehandlungsroutine eine Abfrage eingebaut, die den Anwender fragt, ob er die Anwendung wirklich schließen möchte. So weit so gut. Nun ist es so, dass das Beenden von Windows auf diese Weise behindert wird, da sich das Programm unter Umständen nicht von alleine schließt. Wie kann man die Abfrage nur beim manuellen Schließen anzeigen. Danke für Tips |
Re: Programm beenden
Hallo,
sieh mal in der Hilfe unter WM_QUERYENDSESSION nach... Wenn Du diese Message selbst behandelst, kannst Du auf das Beenden von Windows in gewünschter Weise reagieren. Ralf |
Re: Programm beenden
oder du machst 'n kleinen timer, wo du nach 'n paar sekunden, automatisch das close aufrufst.. z.b. nach 3 oder 5 sekunden...
|
Re: Programm beenden
Zitat:
In die Private-Deklaration folgendes
Delphi-Quellcode:
und ausgeführt sieht das dann so aus:
procedure WMQueryEndSession(var Message: TWMQueryEndSession); message WM_QUERYENDSESSION;
Delphi-Quellcode:
procedure TFRMmain.WMQueryEndSession(var Message: TWMQueryEndSession);
begin Inherited; Message.Result := 1; end; |
Re: Programm beenden
Hallo,
ich mach das immer so:
Delphi-Quellcode:
private
Windows_Session_End: Boolean;
Delphi-Quellcode:
und im OnCloseQuery der form:
procedure TMainForm.WMQueryEndSession (var Msg : TWMQueryEndSession);
begin //Windows erlauben zu beenden Msg.Result := 1; //Wenn Windows beendet wird, dann Variable auf true setzen Windows_Session_End := true; //Programm schliessen close; inherited; end;
Delphi-Quellcode:
Damit wird gleich beendet, ohne dass die Meldung ob man wirklich beenden will kommt.
procedure TMainForm.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin If Windows_Session_End or (MessageDlg(Msg10, mtConfirmation, [mbYes, mbNo], 0) = mrYes) then begin //Beenden erlauben CanClose := true; {...} else //Beenden nicht erlauben CanClose := false; end; (Bei mir werden somit gleich mal alle Sachen gespeichert) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:50 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