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

Вниз

Как корректно (!) не дать приложению закрыться   Найти похожие ветки 

 
Эдуард   (2003-09-03 17:29) [0]

Часто задают вопрос, о том, как не дать приложению закрыться по нажатию Х на заголовке формы. На него всегда отвечают примерно так: "Обрабатывай OnCloseQwery, и CanClose := false"...
Господа, суть проблемы:
Если сделать так как указано выше, то при выходе из виндов (выход или рестарт, не спячка), система вызывает это событие, а приложение не даёт себе закрыться, а, например, плюхается в трэй.
В результате выход или рестарт не выполняется, пока не выгрузишь своё приложение, и не нажмёшь Пуск\Завершение_работы\... вторично...
Можно конечно воспользоваться напр. PowerOff, который такие приложения выгружает принудительно, но всё же, как корректно отделять запросы на закрытие формы при нажатии на Х в заголовке формы и при запросе со стороны системы?

Заранее спасибо!


 
Anatoly Podgoretsky ©   (2003-09-03 17:33) [1]

WM_QUERYENDSESSION


 
Di.ma2002@mail.ru   (2003-09-04 05:21) [2]

Или можешь просто отключить Alt+F4, кнопочку X, убрать системное меню, а дальше проверять Sender если он = Sender твоей кнопки или твоему пункту меню тогда показываешь пароль а иначе закрываешь просто !!


 
Verg ©   (2003-09-04 10:33) [3]

TForm1 = class(TForm)
......
.....

FShutDown : boolean;
procedure OnWM_QUERYENDSESSION(var Msg: TMessage); message WM_QUERYENDSESSION;
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
.....

procedure TForm1.OnWM_QUERYENDSESSION(var Msg: TMessage);
begin
ShutDown:=true;
inherited;
end;

procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
CanClose:=FShutDown;
end;


 
Эдуард   (2003-09-04 11:22) [4]

Огромное спасибо за ответы!



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

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

Наверх




Память: 0.47 MB
Время: 0.024 c
11-41130
ABM
2003-02-17 20:56
2003.11.13
<b>!!!! Ужас !!! KOLEDB, TQuery. Out of Memory !</b>


1-41475
Unn
2003-10-23 20:14
2003.11.13
куча окошек


7-42205
Павлов Александр
2003-08-25 14:44
2003.11.13
Как определить из MS-DOS вендора и модель чипсета?


1-41396
alexis
2003-10-29 15:44
2003.11.13
создание компонента во время работы приложения.


1-41352
Митяй
2003-10-30 17:11
2003.11.13
Размер файла *.exe.