Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.08.22;
Скачать: 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 вся ветка

Текущий архив: 2004.08.22;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.022 c
3-1090972330
AleKo
2004-07-28 03:52
2004.08.22
Проверка на вхождение в операторе WHERE IN


3-1091108838
mouse_web
2004-07-29 17:47
2004.08.22
Отображение картинки из базы Access


14-1091799473
mm0
2004-08-06 17:37
2004.08.22
Ламерский вопрос про Bad blocks


3-1091441978
46_55_41_44
2004-08-02 14:19
2004.08.22
Как создать БД Акцез программно?????


3-1090925763
Domkrat
2004-07-27 14:56
2004.08.22
Проблема с запросом(хп)