как переделать приложение в Mdi
Помогите пожалуйста...
За ссылки на книги где есть подробная инфа по MDI-приложениям - отдельное спасибо.
поставь меню.И по нужному событию создавай свои
Child формы:
void __fastcall TMainForm::N111Click(TObject *Sender)
{
Application->CreateForm(__classid(TForm1), &Form1);
}
когда будешь закрывать "ребенка"
void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
{
Action=caFree;
}
!!! Спасибо огромное, все получилось!!!
Вот только я сразу кнопки из главной формы не убрала, довольно забавный эффект получился :)
Еще раз спасибо
void __fastcall TfrmProvince::btnOkClick(TObject *Sender)
{
int q;
try {
qrProvince->ApplyUpdates();
dmAdress->trAdress->CommitRetaining();
frmProvince->Close();
} catch (Exception &E) {
dmAdress->trAdress->RollbackRetaining();
q = MessageDlg("?", mtError, mbOKCancel,0);//const TModalResult AModalResult
if (q == mrOk) {
frmProvince->Close();
}
}
}
события формы
void __fastcall TfrmProvince::FormClose(TObject *Sender,
TCloseAction &Action)
{
Action = caFree;
}
//---------------------------------------------------------------------------
void __fastcall TfrmProvince::FormCloseQuery(TObject *Sender,
bool &CanClose)
{
CanClose = true;
}
Но если закрыть форму нажатием на крестик, такого не происходит, Хотя ошибка выдается именно в строке frmProvince->Close();
Цитата:
Originally posted by Крыс
первый раз при нажатии на кнопку ок, все работает форма закрывается без проблем, а во второй форме возникает ошибка
первый раз при нажатии на кнопку ок, все работает форма закрывается без проблем, а во второй форме возникает ошибка
Гы. Я в таких случаях советую удалить описание переменной frmProvince на фиг, чтобы компилятор начал ругаться еще на этапе компиляции. Есть шанс при этом лучше понять основы ООП.
Почему frmProvince->Close(); а не просто Close()? Первый вариант означает "закрыть форму frmProvince", второй "закрыть форму, в которой описан метод". Есть разница?
А при использовании в программе нескольких экземпляров одного класса формы все-таки советую удалять созданную средой переменную сразу же, чтобы в процессе программирования сознательно выбрать правильный способ работы с экземплярами классов.
Даже не догадывалась что можно использовать Close сам по себе...
Спасибо...
Цитата:
Originally posted by Freeman
А при использовании в программе нескольких экземпляров одного класса формы все-таки советую удалять созданную средой переменную сразу же, чтобы в процессе программирования сознательно выбрать правильный способ работы с экземплярами классов.
А при использовании в программе нескольких экземпляров одного класса формы все-таки советую удалять созданную средой переменную сразу же, чтобы в процессе программирования сознательно выбрать правильный способ работы с экземплярами классов.
А как обращатся тогда к методам формы "в которой описан метод" , если удалить переменную? Или этого делать ваще не надо?