Показать сообщение отдельно
  #6  
Старый 27.06.2012, 09:51
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

на Delphi 7 сообщение WM_QUERYENDSESSION уже вызывает событие OnCloseQuery:
Код:
  TCustomForm = class(TScrollingWinControl)
  private
    procedure WMQueryEndSession(var Message: TWMQueryEndSession); message WM_QUERYENDSESSION;
...
procedure TCustomForm.WMQueryEndSession(var Message: TWMQueryEndSession);
begin
  Message.Result := Integer(CloseQuery and CallTerminateProcs);
end;
т.е. запретить программе перезагрузку ОС можно 2-мя способами:
1. обработать WM_QUERYENDSESSION:
Код:
procedure TForm1.WMQueryEndSession(var Message: TWMQueryEndSession);
begin
  Message.Result:=0;
end;
2. обработать OnCloseQuery:
Код:
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
  CanClose:=False;
end;
2-ой способ по понятной причине не очень хорош
__________________
Пишу программы за еду.
__________________
Ответить с цитированием