void __fastcall TForm1::ExitClick(TObject *Sender)
{
if (MessageDlg("Выйти из приложения?", mtConfirmation,TMsgDlgButtons() << mbYes <<mbNo, 0) == mrYes )
{
Close();
}
}
Подтверждение перед закрытием программы
Нужно сделать подтверждение перед закрытием программы. Не подскажете как? Обрабатывать OnClose а в нем MessageBox()?
OnCloseQuery + CanClose
Цитата: Zor
OnCloseQuery + CanClose
Программа закрывается по нажатию на крестик.
а должна петь и танцевать?
CanClose управляет возможностью закрытия - можно или нет.
Спроси в MsgBox - и результат в переменную.
Цитата: Zor
:)
а должна петь и танцевать?
CanClose управляет возможностью закрытия - можно или нет.
Спроси в MsgBox - и результат в переменную.
а должна петь и танцевать?
CanClose управляет возможностью закрытия - можно или нет.
Спроси в MsgBox - и результат в переменную.
Возможно, я чего-то не понимаю. Если можно, с примером
Код:
У меня вот так работает.
Только такой вариант не работает, если код вставить в событие OnFormClose!!! Тока если ты собираешься закрывать через другие события.
Код:
void __fastcall TMainForm::FormCloseQuery (TObject *Sender, bool &CanClose)
{
CanClose = (MessageBox(Handle, "Уверен?", "Вопрос", MB_YESNO | MB_ICONQUESTION) == IDYES);
}
//---------------------------------------------------------------------------
{
CanClose = (MessageBox(Handle, "Уверен?", "Вопрос", MB_YESNO | MB_ICONQUESTION) == IDYES);
}
//---------------------------------------------------------------------------
Ну да, как посоветовал Zor получше буит ;)
Цитата: Zor
В событии OnCloseQuery пишешь:
Код:
void __fastcall TMainForm::FormCloseQuery (TObject *Sender, bool &CanClose)
{
CanClose = (MessageBox(Handle, "Уверен?", "Вопрос", MB_YESNO | MB_ICONQUESTION) == IDYES);
}
//---------------------------------------------------------------------------
{
CanClose = (MessageBox(Handle, "Уверен?", "Вопрос", MB_YESNO | MB_ICONQUESTION) == IDYES);
}
//---------------------------------------------------------------------------
Благодарю вас, буду дальше разбираться