![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Завершение сеанса [D5, D6, Win2k, WinXP]
esprit_bel © (2002-05-23 05:51:00)Хочу чтобы моя прога выводила сообщение типа "Бай бай" перед завершением сеанса.
esprit_bel (2002-06-01 09:39:00) [1]Сердечно благодарю?
mukha (2002-05-28 08:14:00) [2]OnCloseQuery- это событие для формы. Ищи в инспекторе объектов. Событие OnCloseQuery возникает в ответ на попытку закрыть форму и вызывается всегда независимо от способа закрытия формы. Обработчик события получает логическую переменную - признак canClose. По умолчанию эта переменная имеет значение true и форму можно закрыть. Если установить false, то форма останется открытой, и можно использовать для проверки, подтверждения закрытия окна и т.д.
Например:
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
CanClose:=MessageDlg("esprit_bel! Хотите завершить программу?",mtConfirmation,[mbYes,mbNo],0)=mrYes;
end;
При закрытии формы выдаётся запрос на закрытии формы. Если кликнуть Yes - форма закроется, если No - нет.
jonik pegas (2002-05-28 08:08:00) [3]В закладке Events Object Inspector-а
esprit_bel (2002-05-28 07:41:00) [4]А где этот самый OnCloseQuery лежит?
Lusha (2002-05-25 10:25:00) [5]>Song © (24.05.02 18:31)
Э-э-э, батенька, так не честно... Я имел в виду завершение сессии приложения, а не операционной системы... :)
Song (2002-05-24 18:32:00) [6]2Новеньки в Делфи (24.05.02 17:33)
В onCloseQuery делать Close нельзя, будет AV
Song (2002-05-24 18:31:00) [7]2Lusha © (24.05.02 16:20)
Например в NT. ОС ждёт какого-то времени пока пользователь не нажмёт кнопку т.е. пока процесс explorer.exe не завершится нормально, потом принудительно подавит процесс и выключится.
Новеньки в Делфи (2002-05-24 17:33:00) [8]ну например в OnCloseQuery
ShowMessage("bye");
Close;
Lusha (2002-05-24 16:20:00) [9]>Song © (24.05.02 13:14)
Да-а-а? А скажите, уважаемый, в какой операционной системе для предложенного MBo кода клавишу ОК нажимать не придется? :)))
P.S. Вообще то я шутил (там, типа, смайлик нарисован)... А то, что автору наверняка нужен обработчик OnCloseQuery я тоже догадываюсь... Но это так к слову...
Song (2002-05-24 13:14:00) [10]2Lusha © (24.05.02 12:18)
Смотря какая ОС.
Для гарантирированного эффекта надо отлавливать WM_QUERYENDSESSION
Lusha (2002-05-24 12:18:00) [11]>esprit_bel (24.05.02 12:17)
Гы-гы... А так и будет... :))))
esprit_bel (2002-05-24 12:17:00) [12]Нет я хочу чтобы пока на ОК не нажмешь сеанс не глушился.
MBo (2002-05-23 06:51:00) [13]например, так?
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
showmessage("bye");
end;