Форум: "Система";
Текущий архив: 2003.08.11;
Скачать: [xml.tar.bz2];
ВнизTray+Reboot Найти похожие ветки
← →
BJValentine (2003-05-28 10:52) [0]Завершаю работу на компе, а в трее у меня висит прога. Как можно сделать, чтобы прога закрылась когда пользователь решит выключить или перезагрузить комп?
← →
Мое имя (2003-05-28 10:58) [1]а чо-не закрываецца?
← →
BJValentine (2003-05-28 11:00) [2]В 2000 Pro - ждёт, пока не закрою. Мне понтно почему ждёт, а юзерам-нет.
← →
Song (2003-05-29 08:25) [3]WM_QUERYENDSESSION
← →
ppcat (2003-05-29 09:34) [4]Есть компонент CoolTrayIcon, там это все реализовано. Ну а если хочешь сам покопаться - смотри, что сказал Song + WM_ENDSESSION.
В обработчике WM_QUERYENDSESSION нужно как минимум вынуть иконку из трэя, но лучше еще послать главному окну своего приложения месидж типа "Закройся". А можно просто сказать Windows, что все в порядке вот так: msg.Result:= 1;
← →
Sceleton (2003-05-29 15:24) [5]Я обычно делаю просто, в обработчике события FormCloseQuery основной формы пишу примерно так:
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
Begin
... операции, которые необходимо сделать перед закрытем программы...
Application.Terminate;
End;
У меня по крайней мере это срабатывает. Проверял в 98 и XP.
← →
BJValentine (2003-05-29 15:36) [6]А в W2k не спабатывает.
У меня получилось, программа закрывается, только вот система не завершает работу. Видать чего-то не хватает. А чего именно?
← →
Song (2003-05-29 15:56) [7]Не хватает вернуть правильный код на то сообщение что я написал.
← →
BJValentine (2003-05-29 16:01) [8]А какой именно код?
← →
Song (2003-05-29 17:45) [9]Почитай хэлп, там ясно всё написано.
← →
BJValentine (2003-05-29 18:19) [10]Там пишется, что нужно вернуть true, но delphi на это ругается.
← →
Song (2003-05-29 22:27) [11]True - это 1.
Если непонятно, то можно было так проверить - Integer(True)
← →
Alex Konshin (2003-05-30 04:50) [12]Ведь отвечал уже на этот вопрос, но не могу найти в поиске по сайту.
Суть в том, что надо завести булевскую переменную, которая контролирует спрашивать/не спрашивать и еще в правильной обработке WM_QUERYENDSESSION:
procedure TfmServerToolBar.WMQueryEndSession(var Message: TWMQueryEndSession);
begin
Init;
FQuietClose := True;
Message.Result := Integer(CallTerminateProcs);
Application.Terminate;
end;
← →
BJValentine (2003-05-30 15:21) [13]Спасибо, заработало
Страницы: 1 вся ветка
Форум: "Система";
Текущий архив: 2003.08.11;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.106 c