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


Автор: WERITAS 30.4.2006, 12:27
Как сделать, чтобы  форма создавалась  во время выполнения программы? Я перешел в свойства проекта, выбрать вкладку Forms и переместил формы, которые не должны быть созданы автоматически, в список Available Forms. Где именно мне надо вызвать для формы метод Create? 

 

Автор: popolzen 30.4.2006, 12:39
Смысл создавать Available Forms в коде программы есть только в тех случаях, если
1) Форма требует большого количества времени для создания (из-за этого тормозится запуск программы)
2) Если такие формы требуют большого объема памяти, и их надо создавать/удалять динамически

Первый случай требует создания формы в любом месте программы (хоть в Create), но при этом в отдельном потоке. Иначе программа будет тормозить.
Второй случай говорит сам за себя.

Если это не совсем то что надо, то объясни поподробнее, зачем ты не хочешь их создавать автоматически. 

Автор: WERITAS 30.4.2006, 12:45
А если я только-только запустил среду Delphi, я могу как-нибудь основную форму (Form1) создать как  Available? Если да, то где (в каком именно месте модуля) надо написать код создания? 

Автор: popolzen 30.4.2006, 13:05
Зайди в Project > View Source
После создания нового приложения у тебя появляется код
Код

program Project1;

uses
  Forms,
  Unit1 in 'Unit1.pas' {Form1};

{$R *.res}

begin
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Application.Run;
end.


Если в Project Options перенести форму Form1 в Available Forms, строка
Application.CreateForm(TForm1, Form1);
в коде проекта исчезнет.
Пиши в нем весь нужный тебе код и, где надо, вставляй Application.CreateForm(TForm1, Form1); 

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