if ( !IsCreate )
{
IsCreate = true;
pForm = new TForm1(this);
...
}
MDI приложения
ТАкая проблема.... впервые столкнулся с MDI приложениями в Borland, есть несколько проблем:
Делаю в свойствах формы MDIChildren, но все окна загружаются сразу при запуске, ладно делаю в свойствах option, чтобы автоматически не создавались. Но сразу возникает несколько проблем
1. Как мне вызывать формы в одном экземпляре? Я создаю форму с помощью new, ну естественно так можно вызвать энное количество форм... а мне надо 1 экземпляр каждого подчиненого окна
2. после того как создаю форму она почему то не закрывается! :( нажимаю на крестик а она просто сворачивается и все, закрыть не возможно..
как мне избавится от всех этих проблем?
а по поводу 1-го экземпляра, не понял в чём проблема. ;)
Введи bool IsCreate переменную, и делай что-то вроде
Код:
Цитата: inkognitum
Добрый день.
ТАкая проблема.... 2. после того как создаю форму она почему то не закрывается! :( нажимаю на крестик а она просто сворачивается и все, закрыть не возможно..
как мне избавится от всех этих проблем?
ТАкая проблема.... 2. после того как создаю форму она почему то не закрывается! :( нажимаю на крестик а она просто сворачивается и все, закрыть не возможно..
как мне избавится от всех этих проблем?
Код:
void __fastcall TMapDocForm::FormClose(TObject *Sender, TCloseAction &Action)
{
Action = caFree;
}
{
Action = caFree;
}
Цитата: nikipelovav
Почитай спраку про метод TCustomForm::OnClose. Там ответ - как закрыть MDI окно.
а по поводу 1-го экземпляра, не понял в чём проблема. ;)
Введи bool IsCreate переменную, и делай что-то вроде
а по поводу 1-го экземпляра, не понял в чём проблема. ;)
Введи bool IsCreate переменную, и делай что-то вроде
Код:
if ( !IsCreate )
{
IsCreate = true;
pForm = new TForm1(this);
...
}
{
IsCreate = true;
pForm = new TForm1(this);
...
}
Либо делай кнопку (элемент меню и т.п.), по нажатию на которую у тебя создается окно, Enabled = false (Visible = false). А при закрытии подчиненной формы, помимо caFree выставляй Enabled = true (Visible = true).