Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.10.16;
Скачать: CL | DM;

Вниз

Ошибка при завершении работы ОС   Найти похожие ветки 

 
ronyn   (2005-08-16 00:13) [0]

Свою программу я минимизирую в трей. Оттуда нажав в Popup "Выход" , появляется Application.MessageBox(мол, хотите действительно выйти?).
 А когда я перезагружаю комп, моя программа завершается критическим путем. Что делать? Заранее благодарен.


 
Eraser ©   (2005-08-16 00:15) [1]

ronyn   (16.08.05 00:13)

Обрабатывать сообщение WM_ENDSESSION.


 
alpet ©   (2005-08-16 00:16) [2]

Программа отрабатывает сообщения WM_QUERYENDSESSION, WM_CLOSE, WM_QUIT?


 
ronyn   (2005-08-16 00:19) [3]

А как это будет выглядеть в полном виде. В каком событии, какие параметры?


 
Eraser ©   (2005-08-16 00:22) [4]

ronyn   (16.08.05 00:19) [3]

В msdn.com точно написано.


 
Piter ©   (2005-08-16 01:04) [5]

Ты запостил вопрос в конференцию по WinApi.
Соответственно, я думаю, что программа у тебя на WinApi.

Если у тебя программа на WinApi, и ты не знаешь как обработать какое бы то ни было сообщение... то я даже не знаю что подумать


 
afanasic   (2005-08-16 10:44) [6]

Удалено модератором


 
tesseract ©   (2005-08-16 16:52) [7]

Application.onMessage -  обрабатывает все сообщения windows.
лови все  WM_QUERYENDSESSION и при нём не задавай дурных вопросов о необходимости выхода из программы - а то завешат насильно.


 
Piter ©   (2005-08-16 16:59) [8]

tesseract ©   (16.08.05 16:52) [7]
Application.onMessage -  обрабатывает все сообщения windows


if PeekMessage(Msg, 0, 0, 0, PM_REMOVE) then
 begin
   Result := True;
   if Msg.Message <> WM_QUIT then
   begin
     Handled := False;
     if Assigned(FOnMessage) then FOnMessage(Msg, Handled);
......


Не все. Как раз WM_QUIT не обработает.


 
Leonid Troyanovsky ©   (2005-08-16 17:02) [9]


> Piter ©   (16.08.05 16:59) [8]

> Не все. Как раз WM_QUIT не обработает.


А он и не нужен. Достаточно WM_*ENDSESSION.

--
Regards, LVT.


 
Piter ©   (2005-08-16 17:13) [10]

Leonid Troyanovsky ©   (16.08.05 17:02) [9]
А он и не нужен


а я и не говорю, что нужен :)

Я только прокомментировал фразу:

tesseract ©   (16.08.05 16:52) [7]
Application.onMessage -  обрабатывает все сообщения windows


 
Игорь Шевченко ©   (2005-08-16 17:14) [11]


> Application.onMessage -  обрабатывает все сообщения windows.
>


Далеко не все :)


 
Leonid Troyanovsky ©   (2005-08-16 17:18) [12]


> Piter ©   (16.08.05 17:13) [10]
> Leonid Troyanovsky ©   (16.08.05 17:02) [9]
> А он и не нужен

> а я и не говорю, что нужен :)


Млин, запощенные.
Sorry.

--
Regards, LVT.


 
Piter ©   (2005-08-16 17:37) [13]

Игорь Шевченко ©   (16.08.05 17:14) [11]
Далеко не все :)


ну я думаю имеются в виду основному потоку и его окнам :)
А тут, кроме WM_QUIT, OnMesage все ловит...


 
Игорь Шевченко ©   (2005-08-16 18:41) [14]

Piter ©   (16.08.05 17:37) [13]

[12] :)


 
Piter ©   (2005-08-16 18:47) [15]

Игорь Шевченко ©   (16.08.05 18:41) [14]

а-а-а. Вы про то, что сообщения от SendMessage не будут доходить? :)
Ну это и так как бы понятно :)


 
tesseract ©   (2005-08-17 12:08) [16]

>>Не все. Как раз WM_QUIT не обработает.

Конечно не обработает, WM_QUIT обрабатывается TApllication лично и только после этого производится срабатывание OnMessage.


 
Piter ©   (2005-08-17 14:20) [17]

tesseract ©   (17.08.05 12:08) [16]

Да, спасибо, мы с этим уже разобрались :)



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

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

Наверх




Память: 0.5 MB
Время: 0.055 c
1-1127599349
dominik
2005-09-25 02:02
2005.10.16
Unicode


2-1126083198
dreamse
2005-09-07 12:53
2005.10.16
Перевод данных в формат Даты


3-1125572079
Term
2005-09-01 14:54
2005.10.16
Проблема с UNION


11-1108113078
Alec
2005-02-11 12:11
2005.10.16
KOLEDB:MEMO поля


14-1127466173
stone
2005-09-23 13:02
2005.10.16
Трудности перевода или давайте говорить по-русски