Закрытие окна

Добрый день,
как можно "поймать" событие закрытия окна, т.е. можно закрыть через крестик, можно через кнопку "Cancel" или "Ok", или клавишой "Esc". Как можно узнать каким именно образом оно было закрыто?

Нравится

4 комментария

Спасибо за Ваше обращение. Мы зарегистрировали его в Службе технической поддержки и назначили специалиста, который сможет Вас компетентно проконсультировать по данному вопросу

По сути способа два - это "ОК", т.е. запись изменений в БД, и остальное - отмена записи в БД.
Для "ОК" есть свое событие - btnOkOnClick(Control), либо OnDatasetBefore(After)Post. Для всего остального - OnCloseQuery(Window).

Спасибо за ответ, но это не совсем то, что нужно. Событие OnCloseQuery(Window) срабатывает и на кнопках Ок и Cancel. Мне же нужно знать что окно именно закрыто кнопкой Cancel, крестиком или клавишой Esc, и если это так, делать какие-то действия.

Здравствуйте, Денис!

Можно на событии OnPrepare окна установить какую-то глобальную переменную в False, в btnOKOnClick установить ее в True, в OnCloseQuery проверить, если False – значит крестиком, Cancel или Esc.

Показать все комментарии