Вниз
Скачать: CL | DM;

"Правильное" завершение работы программы   Найти похожие ветки 

← →
denkop ©   (2004-08-03 02:05) [0]

Как отличить закрытие формы пользователем от закрытия её виндой. WM_ENDSESSION не проходит, хотя может и проходит, но я не правильно его обрабатываю. Короче вот кусок кода:

 public
   procedure GetEndSession(var Msg:TMessage); message WM_ENDSESSION;

......

var
 Trm:byte;
{в онкреат зануляю этот самый трм}

......

procedure TMainForm.GetEndSession(var Msg:TMessage);
begin
 Trm:=1;
 Application.Terminate;
end;

procedure TMainForm.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
if (Settings.MinToTray) and (Trm<>1) then
begin
  MainForm.Visible:=False;
  CanClose:=false;
end;
SettingsForm.WriteSettings;
end;


← →
denkop ©   (2004-08-03 02:08) [1]

Ещё забыл. При первой попытке выклбчить компьютер завершается только моя программа. После второй попытки всё остальное. Замучался по два раза шырять завершение работы.

Заранее благодарен за помощь.


← →
GuAV ©   (2004-08-03 02:35) [2]


>  Application.Terminate;

The application need not call the DestroyWindow or PostQuitMessage function when the session is ending.

т.е. этого делать не надо. Убери эту строку


> {в онкреат зануляю этот самый трм}


уже не проблема, но тоже незачем.
он и так нуль, а для наглядности можно дописать.
var
Trm:byte = 0;


← →
GuAV ©   (2004-08-03 02:50) [3]

А проблема в том что FormCloseQuery происходит до GetEndSession.

попробуй FormClose, чтоб не закрывать - CloseAction:=caNone

или WM_QUERYENDSESSION


← →
denkop ©   (2004-08-05 00:19) [4]

Получилось с помощью WM_QUERYENDSESSION совместно с OnClose. Спасибо за помощь.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.023 c
14-1091102799
ИМХО
2004-07-29 16:06
2004.08.22
500-я ошибка


1-1091689182
Vilux
2004-08-05 10:59
2004.08.22
Вопрос по деревьям


9-1083856438
Маг Гыр
2004-05-06 19:13
2004.08.22
Несколько вопросов по DirectX ?


1-1092006328
dmk
2004-08-09 03:05
2004.08.22
SetBounds на весь экран


14-1090698815
Marser
2004-07-24 23:53
2004.08.22
Уезжаю!




   Наверх