Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Создание формы


Автор: Mew 20.2.2005, 14:22
У меня в проге, около 10 форм...
Все они создаются при запуске все программы, а как сделать так чтобы они создавались, последовательно.. например при нажатия кнопку...

Т.к. при нажатию на кнопку, у меня появляются каждая из этих форм, становиться видимой, но лучше бы она как мне кажется создавалась бы именно в этот момент

Автор: Katrina 20.2.2005, 14:42
Можно в основном модуле твоей программы "program YourProject" отключить для остальных форм (кроме главной) Application.CreateForm(TForm2, Form2) и т.д., т.е. просто удалить или комментировать. Так, при запуске основной программы эти формы создаваться не будут.
Потом в основной форме, например, при нажатии на кнопку напиши:
Код

Application.CreateForm(TForm2, Form2);
Form2.ShowModal;


Это все.

Автор: <Spawn> 20.2.2005, 16:39
Я бы не стал комментировать, а просто убрал бы ненужные формы из списка автосоздаваемых в Project->Options на вкладке Forms

Автор: Александра 20.2.2005, 17:08
<Spawn> верно сказал...

а создавать формы можно и так так:

Код
form2 := TForm2.Create(self);
form2.show;


а также не забудь удалять потом форму. например в обработчике OnDestroy главной формы

Автор: FRAGNATIC 20.2.2005, 17:25
сначал сделай как сказал <Spawn> а потом
Код

 if not Assigned(Form2) then Form2 := TForm2.Create(self);
 Form2.ShowModal; //или просто  Form2.Show (почитай про модальные и не                                  //модальные окна


Автор: Jey_k 22.2.2005, 15:30
Можно в свойствах ненужных пока форм ставить visible:=false;
Добавлено @ 15:31
а вообще уже сказали лучший вариант.

Автор: ningen 26.2.2005, 11:07
я обычно с диалоговыми формами работаю примерно так:

Код

with TForm2.Create(nil) do // не нужен ей владелец
try
 if Showmodal = mrOk then {...};
finally
 Free;
end;


PS про то, что форму надо удалить из списка автосоздаваемых, уже говорили,
а ещё следует и глобальную переменную var Form2: TForm2 тоже удалить. Не нужна она.
(Брезгуешь with - создай локальную переменную)

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