Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Ошибка при завершении работы ОС [D7, WinXP]


ronyn ©   (2005-08-16 00:13:00) 

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


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

tesseract ©   (17.08.05 12:08) [16]

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


tesseract   (2005-08-17 12:08:00) [2]

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

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


Piter   (2005-08-16 18:47:00) [3]

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

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


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

Piter ©   (16.08.05 17:37) [13]

[12] :)


Piter   (2005-08-16 17:37:00) [5]

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


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


Leonid Troyanovsky   (2005-08-16 17:18:00) [6]


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

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


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

--
Regards, LVT.


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


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


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


Piter   (2005-08-16 17:13:00) [8]

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


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

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

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


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


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

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


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

--
Regards, LVT.


Piter   (2005-08-16 16:59:00) [10]

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 не обработает.


tesseract   (2005-08-16 16:52:00) [11]

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


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

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


Piter   (2005-08-16 01:04:00) [13]

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

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


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

ronyn   (16.08.05 00:19) [3]

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


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

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


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

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


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

ronyn   (16.08.05 00:13)

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


Наверх

Титульная страница Поиск, карта сайта Написать письмо