Как определить, что моё приложение хотят
завершить
объявляем следующию процедуру как:
procedure WMQueryEndSession( var Message: TWMQueryEndSession); message WM_QUERYENDSESSION;
и определяем её как:
procedure TMainFrm.WMQueryEndSession(var Message: TWMQueryEndSession);
begin
Message.Result:=1;
gEndSession := True;
end;
она будет вызываться, когда Windows пожелает
завершиться. Хотя обычно такая процедура
вызывается как:
procedure TMainFrm.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
CanClose := True;
if gQueryEnd and not gEndSession then
if MessageDlg('Quitting (your app name). Are you
sure?',
mtInformation,
mbOKCancel, 0) = mrCancel then CanClose := False
end;
|