![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Ошибка при завершении работы ОС [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.