15 мая 2023 года "Исходники.РУ" отмечают своё 23-летие!
Поздравляем всех причастных и неравнодушных с этим событием!
И огромное спасибо всем, кто был и остаётся с нами все эти годы!

Главная Форум Журнал Wiki DRKB Discuz!ML Помощь проекту


Как определить, что моё приложение хотят завершить

объявляем следующию процедуру как:
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;