Delphi-Quellcode:
...
private
FCanClose: Boolean;
procedure WMQueryEndSession(var Msg: TMessage); message WM_QUERYENDSESSION;
procedure WMEndSession(var Msg: TMessage); message WM_ENDSESSION;
...
procedure TJoyMainForm.WMQueryEndSession(var Msg: TMessage);
begin
// allow close of program on shutdown
FCanClose := True;
Msg.Result := 1;
end;
procedure TJoyMainForm.WMEndSession(var Msg: TMessage);
begin
if Msg.WParam = 1 then
Msg.Result := 0;
end;
So mache ich das. Wichtig ist zu wissen das die Form kein OnDestroy mehr bekommt, falls man dort
noch Finalisierungen macht, so muss man sie auch im WMEndSession erledigen.