OberonAR писал(а):А если сделать все таки 1 форму, а на ней pagecontrol с вкладками под каждую таблицу и при вызове делать visible:=true только нужной вкладке?
Тогда уж лучше пользоваться фреймами
Модератор: Модераторы
OberonAR писал(а):А если сделать все таки 1 форму, а на ней pagecontrol с вкладками под каждую таблицу и при вызове делать visible:=true только нужной вкладке?
gzip: stdin: not in gzip format
tar: Child returned status 1
tar: Exiting with failure status due to previous errors
OberonAR писал(а):массив форм который я предложил, предоставляет больше контроля над всеми открытыми окнами...
var i:integer;
begin
with Application.MainForm do
begin
for i:=0 to Pred(ComponentCount) do
begin
if Components[i] is TForm then //Отбор всех форм
begin
if Components[i] is T...Form then //Отбор всех форм нужного класса
with Components[i] as T...Form do//Доступ к полям формы
end;
end;
end;
end;
svk12 писал(а):Если формы создавались Application.CreateForm(), то они находятся в списке Components главной формы приложения.
OberonAR писал(а):Поначалу планировал все эти формы в дизайн-тайме создавать, а потом экземпляры форм по необходимости. Но большое количество форм будет сразу загружено в память, что не есть гуд (ведь я
только потом буду создавать и уничтожать экземпляры форм, а начальные так и будут висеть в памяти) - как создать саму изначальную форму в рантайме именно такой, какой я ее могу нарисовать в дизайнере форм.
OberonAR писал(а):а с моим вариантом как - нет ли грубых ошибок?
if Components[i] is T...Form then //Отбор всех форм нужного класса
with Components[i] as T...Form do//Доступ к полям формы
leo_bsv писал(а):человек вроде не желает создавать всё и сразу, на сколько я понял.
leo_bsv писал(а):с массивом, списками типов TFPGList и TObjectList теоретически можно проделать то же самое, задав в качестве класса массива/списка TForm? или я не прав?
procedure TApplication.CreateForm(InstanceClass: TComponentClass; out Reference);
var
Instance: TComponent;
...
begin
...
Instance := TComponent(InstanceClass.NewInstance);
...
if (FCreatingForm=nil) and (Instance is TForm) then
FCreatingForm:=TForm(Instance);
Instance.Create(Self);
...
Application.CreateForm(TForm1, Form1);
begin
Application.Initialize;
и
Application.Run;
end.
svk12 писал(а):Но если хочется создавать форму динамически, то следует убрать её Application.CreateForm из файла проекта и вызывать в нужном месте в нужное время.
var
Form1, Form2...: TForm1;
Application.CreateForm(TForm1, Form2);
leo_bsv писал(а):мы не знаем имени нового объекта... а процедура требует имя:
как быть?
frm := TForm1.Create(Application);
...
with TForm1.Create(Application) do
...
Но если хочется создавать форму динамически, то следует убрать её Application.CreateForm из файла проекта
iskander писал(а):frm := TForm1.Create(Application);
iskander писал(а):with TForm1.Create(Application) do
iskander писал(а):В параметрах проекта есть удобная вкладка "Формы".
leo_bsv писал(а):если обе эти конструкции регистрируют форму в свойстве Application.Components
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 201