Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Trotz Bestätigung Programm mit Windows beenden (https://www.delphipraxis.net/108472-trotz-bestaetigung-programm-mit-windows-beenden.html)

Svenkan 14. Feb 2008 09:08


Trotz Bestätigung Programm mit Windows beenden
 
Hallo!
Bevor mein Programm beendet werden kann, muss dies durch eine Bestätigung 'vollendet' werden.

Delphi-Quellcode:
procedure THauptform.FormCloseQuery(Sender: TObject;
  var CanClose: Boolean);
begin
 if MessageDlg('Wollen Sie VPlan Plus wirklich beenden?',
    mtConfirmation, [mbYes, mbNo], 0) = mrYes then
   CanClose:=True
 else
   CanClose:=False;
end;
Wenn nun Windows beendet wird, während das Programm noch läuft, funktioniert dies auf Grund einer Warnmeldung nicht.

Wie ist es möglich, dass bei einem Shutdown CanClose auf True gesetzt wird?
Oder gibt es da noch bessere Möglichkeiten hinsichtlich des Beendens?

Nikolas 14. Feb 2008 09:11

Re: Trotz Bestätigung Programm mit Windows beenden
 
Warum benutzt du denn CanClose?

Wenn der Nutzer Ja klickt, soll sich das Programm doch direkt beenden. Schreib doch gleich ein Form.Close (oder so was).

SirThornberry 14. Feb 2008 09:12

Re: Trotz Bestätigung Programm mit Windows beenden
 
wenn windows heruntergefahren wird gibt es die Nachricht wm_queryendsession. Einfach darauf reagieren und in einer variablen vermerken das heruntergefahren wird:
Delphi-Quellcode:
procedure THauptform.FormCloseQuery(Sender: TObject;
  var CanClose: Boolean);
begin
  if (fShutting_down or (MessageDlg('Wollen Sie VPlan Plus wirklich beenden?', mtConfirmation, [mbYes, mbNo], 0) = mrYes)) then
     CanClose:=True
  else
    CanClose:=False;
end;

Luckie 14. Feb 2008 09:12

Re: Trotz Bestätigung Programm mit Windows beenden
 
Behandele die Nachtricht Hier im Forum suchenWM_QUERYENDSESSION.

@Svenkan: Weil das Ereifnis FormCloseQuery genau dafpür gedacht ist. Schreibst du das in OnClose, kannst du den Vorgang nicht mehr abbrechen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:48 Uhr.

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