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


Автор: andy007007 13.9.2012, 12:53
Здраствуйте уважаемые знатоки!
У меня не срабатывает событие onclosequery.
1.создал новую форму
2.добавил
Код

void __fastcall TForm1::FormCloseQuery(TObject *Sender, bool &CanClose)
{
  if (MessageDlg("Close the form?", mtConfirmation, TMsgDlgButtons() << mbOK << mbCancel,0) == mrCancel)
    CanClose = false;
}


а счастья нет, то есть не появляется вопрос при закрытии формы.

Специально создал простенький проектик, он пристегнут, можете посмотреть, спасибо.

Автор: artsb 13.9.2012, 13:58
Win7, RadStudio XE. Всё работает:
user posted image

Автор: andy007007 13.9.2012, 14:17
artsb, спасибо за быстрый ответ.
1.Вы в коде нисего не меняли?
2.Форму закрывали путем нажатия на крестик в правом верхнем углу?

Я еще раз пристегнул проектик, что-то в первом сообщении его не обнаружил

Автор: artsb 13.9.2012, 14:51
Цитата(andy007007 @  13.9.2012,  14:17 Найти цитируемый пост)
1.Вы в коде нисего не меняли?

Нет. Скопировал, вставил.

Цитата(andy007007 @  13.9.2012,  14:17 Найти цитируемый пост)
2.Форму закрывали путем нажатия на крестик в правом верхнем углу?

Да.

Возможно проблема в BCB6. У меня его сейчас нет, так что проверить не могу.
Попробуйте ещё так:
Код

    if(MessageBox(this->Handle, "Close form?", NULL, MB_YESNO | MB_ICONQUESTION) != ID_YES)
    {
        CanClose = false;
    }

Автор: andy007007 13.9.2012, 15:24
artsb, 
нашел ошибку, все пошло, спасибо за помощь.
Есть желание поменять шестерку, но не могу выбрать, посоветуете на что поменять?

Автор: artsb 13.9.2012, 16:01
Цитата(andy007007 @  13.9.2012,  15:24 Найти цитируемый пост)
Люди, у кого builder6 попробуйте запустить. Хочется знать в нем дело или нет.

Постараюсь дома поставить и проверить.

Цитата(andy007007 @  13.9.2012,  15:24 Найти цитируемый пост)
Есть желание поменять шестерку, но не могу выбрать. 

Что-нибудь поновее: RadStudio 2009, XE, XE2

Автор: artsb 14.9.2012, 13:42
Вчера поставить 6-ой Билдер не удалось...

А если просто написать:
Код

void __fastcall TForm1::FormCloseQuery(TObject *Sender, bool &CanClose)
{
    CanClose = false;
}

всё равно не срабатывает?

Автор: sawfish 14.9.2012, 20:49
artsb, ТС выше отписался, что всё пошло после исправления ошибки.

Автор: artsb 15.9.2012, 17:48
Цитата(sawfish @  14.9.2012,  20:49 Найти цитируемый пост)
artsb, ТС выше отписался, что всё пошло после исправления ошибки. 

Хех )) А я прочитал сообщение ещё до исправления )

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