Здравствуйте, APTЁM, Вы писали:
APT>При определённых параметрах события OnClose формы необходимо не закрывать форму. Т.е. в функции FormClose творится следующее:
APT>Код...
APT>
APT>Поделитесь, пжлста, мыслями по поводу...
Я думаю, что тебе лучше использовать OnCloseQuery вместо OnClose,
намного всё будет попроще...
С уважением.
AlexandrN
Здравствуйте, APTЁM, Вы писали:
APT>При определённых параметрах события OnClose формы необходимо не закрывать форму. Т.е. в функции FormClose творится следующее:
APT>APT>switch (MessageBox(NULL, "Сохранить изменения в файле?", "Предупреждение", MB_ICONWARNING|MB_YESNOCANCEL)){
APT> case IDNO:{
APT> static int I;
APT> static TComponent *Temp;
APT> for (I = Panel->ComponentCount - 1; I >= 0; I--)
APT> {
APT> Temp = Panel->Components[I];
APT> delete Temp;
APT> };
APT> break;
APT> }
APT> case IDYES:{
APT> Save_Panel_2_Form();
APT> break;
APT> }
APT> case IDCANCEL:{
APT> //Вот здесь хочется что-то написать, а что - никак не могу понять :xz:
APT> break;
APT> }
APT> }
APT>
APT>Поделитесь, пжлста, мыслями по поводу...
Обычно в конце обработки события вызывается предопределённая функция для обработки (например DefWindowPro в API). ПОна, собственно и закрывает окно. Просто нужно её не вызывать.
При определённых параметрах события OnClose формы необходимо не закрывать форму. Т.е. в функции FormClose творится следующее:
switch (MessageBox(NULL, "Сохранить изменения в файле?", "Предупреждение", MB_ICONWARNING|MB_YESNOCANCEL)){
case IDNO:{
static int I;
static TComponent *Temp;
for (I = Panel->ComponentCount - 1; I >= 0; I--)
{
Temp = Panel->Components[I];
delete Temp;
};
break;
}
case IDYES:{
Save_Panel_2_Form();
break;
}
case IDCANCEL:{
//Вот здесь хочется что-то написать, а что - никак не могу понять :xz:
break;
}
}
Поделитесь, пжлста, мыслями по поводу...
Здравствуйте, APTЁM, Вы писали:
APT>При определённых параметрах события OnClose формы необходимо не закрывать форму. Т.е. в функции FormClose творится следующее:
APT>APT>switch (MessageBox(NULL, "Сохранить изменения в файле?", "Предупреждение", MB_ICONWARNING|MB_YESNOCANCEL)){
APT> case IDNO:{
APT> static int I;
APT> static TComponent *Temp;
APT> for (I = Panel->ComponentCount - 1; I >= 0; I--)
APT> {
APT> Temp = Panel->Components[I];
APT> delete Temp;
APT> };
APT> break;
APT> }
APT> case IDYES:{
APT> Save_Panel_2_Form();
APT> break;
APT> }
APT> case IDCANCEL:{
APT> //Вот здесь хочется что-то написать, а что - никак не могу понять :xz:
APT> break;
APT> }
APT> }
APT>
APT>Поделитесь, пжлста, мыслями по поводу...
А тут мыслей никаких и быть не должно. Тут надо залезть в документацию и увидеть, что при вызове обработчика onClose второй параметр ссылка на объект TCloseAction& Action . Если тебе не надо закрывать форму, этот Action надо установить равным caNone.
Здравствуйте, APTЁM, Вы писали:
APT>При определённых параметрах события OnClose формы необходимо не закрывать форму. Т.е. в функции FormClose творится следующее:
APT>APT>switch (MessageBox(NULL, "Сохранить изменения в файле?", "Предупреждение", MB_ICONWARNING|MB_YESNOCANCEL)){
APT> case IDNO:{
APT> static int I;
APT> static TComponent *Temp;
APT> for (I = Panel->ComponentCount - 1; I >= 0; I--)
APT> {
APT> Temp = Panel->Components[I];
APT> delete Temp;
APT> };
APT> break;
APT> }
APT> case IDYES:{
APT> Save_Panel_2_Form();
APT> break;
APT> }
APT> case IDCANCEL:{
APT> //Вот здесь хочется что-то написать, а что - никак не могу понять :xz:
APT> break;
APT> }
APT> }
APT>
APT>Поделитесь, пжлста, мыслями по поводу...
На скока я сзнаю из BCB при обработке данного события есть параметр Action который надо приравнять caNone.
в делфях так же должно.
Спасибо grs и DanilB, действительно, стоило быть понастойчивей с документацией, там всё подробно написано о том, что вы говорили.