Если текст в 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, то запихни это в отдельный поток, организующий выход из программы.
Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.
ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!