Hallo,
ich mach das immer so:
Delphi-Quellcode:
private
Windows_Session_End: Boolean;
Delphi-Quellcode:
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;
und im OnCloseQuery der form:
Delphi-Quellcode:
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;
Damit wird gleich beendet, ohne dass die Meldung ob man wirklich beenden will kommt.
(Bei mir werden somit gleich mal alle Sachen gespeichert)
mfg
Helmi
>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<