Если текст в Memo1 был изменен, то программа не разрешает завершения сеанса Windows.

Code:

...

private

   procedure WMQueryEndSession(var Msg: TWMQueryEndSession); message WM_QUERYENDSESSION;

...

procedure TForm1.WMQueryEndSession(var Msg: TWMQueryEndSession);

begin

Msg.Result := integer(not Memo1.Modified);

end;

 Автор советов: Даниил Карапетян

Автор справки: Алексей Денисов

 

Как корректно перехватить сигнал выгрузки операционной системы, если в моей программе нет окна

 Автор: Nomadic 

  

Используй GetMessage(), в качестве HWND окна пиши NULL (на Паскале - 0). Если в очереди сообщений следующее - WM_QUIT, то эта функция фозвращает FALSE. Если ты пишешь программу для Win32, то запихни это в отдельный поток, организующий выход из программы.

 

Добавить комментарий

Не использовать не нормативную лексику.

Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.

ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!