Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > Перехватить закрытите формы


Автор: Mpak 12.5.2008, 22:30
Мне надо что бы при закрытии формы обрабатывался код, и если условие выполняется то форму закрыть нельзя.
Из не рабочего кода видно, что я хочу. Помогите сделать его рабочим, пожалуйста smile
Код

void __fastcall TSplitBlock::FormClose(TObject *Sender,
      TCloseAction &Action)
{
if (ListMarksOnBlock->Count != 0)
 { MessageBox(0, "Тратата", "Внимание", MB_ICONWARNING);
   return; }
}


P.S. return меня не спас  smile 

Автор: 586 12.5.2008, 22:47
Код
Action = caNone;

Ещё есть событие OnCloseQuery.

Автор: Mpak 12.5.2008, 22:52
Ага, только что сам нашел TCloseAction type  smile 
Спасибо smile

P.S. А можно поподробнее о OnCloseQuery и его отличие от OnClose

Автор: SVN74 12.5.2008, 22:55
void __fastcall TSplitBlock::FormClose(TObject *Sender,
      TCloseAction &Action)
{
if (ListMarksOnBlock->Count != 0)
 { Action = caNone;
    MessageBox(0, "Тратата", "Внимание", MB_ICONWARNING)
 }
   else Action = caFree;
}

Может быть так ?

Автор: 586 12.5.2008, 22:57
OnCloseQuery специально предназначен для перехвата закрытия формы. Если CanClose равен false, форма не закроется.

Автор: SVN74 12.5.2008, 23:14
Цитата(586 @ 12.5.2008,  22:57)
OnCloseQuery специально предназначен для перехвата закрытия формы. Если CanClose равен false, форма не закроется.

Это почти одно и тоже , так можно и так можно, ему прийдется писать почти одно и тоже.

Автор: mrbrooks 13.5.2008, 08:37
Цитата(SVN74 @ 12.5.2008,  23:14)
Цитата(586 @ 12.5.2008,  22:57)
OnCloseQuery специально предназначен для перехвата закрытия формы. Если CanClose равен false, форма не закроется.

Это почти одно и тоже , так можно и так можно, ему прийдется писать почти одно и тоже.

В принципе да.
Но все таки не стоит забывать что при закрытие формы сначала наступает событие OnCloseQuery, затем 
OnClose

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)