Иногда в приложении требуется запретить закрытие формы, к примеру для вывода запроса на сохранение данных. Для этого воспользуемся событием формы OnCloseQuery. Достаточно в этом событии вписать строчку CanClose = false; и наша форма уже не закроется. Что бы разрешить закрытие, переменной CanClose необходимо присвоить значение true.
Пример:
void __fastcall TFormTest::FormCloseQuery(TObject *Sender, bool &CanClose)
{
if(flag == true) //Если наша переменная flag равна true, то...
{
CanClose = true; //...разрешаем закрыть форму
}
else //иначе
{
CanClose = false; //...запретить закрытие формы
}
}
Пример использования показан в этой программе, ее невозможно закрыть пока не будет нажата кнопака «Да».