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

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

Завершение сеанса [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;


Наверх

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