Показать сообщение отдельно
  #2  
Старый 27.06.2012, 02:47
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Странно, а мне наооборот пришлось искать способ чтоб винда нормально закрывалась, т.к. прога не выгружалась и выключения не происходило совсем. Но если это надо, то попробуйте в главном варе (после паблик, но до implementation) объявить булёвку типа var CnClose: Boolean; и управлять её состоянием самостоятельно, ибо есть подозрение, что делфя принудительно (особенность системы:-) посылает разрешение на закрытие от себя, без участия исполняемой части. Тогда код немного преобразится:

Код:
procedure TForm2.WMQUERYENDSESSION(var Msg: TMessage);
begin
CnClose:= false;
Msg.Result:= 0;
end;

procedure TForm2.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
  CanClose:= CnClose; // Вот здесь принудиловка, среде не отвертеться :)
end;

procedure TForm2.WMENDSESSION(var Msg: TMessage);
begin
CnClose:= false;
 Msg.Result:=0;
end;
Ну и в ОнКриэйт CnClose:= false; Должно помочь.
Ответить с цитированием