Чуваки, а кто-нить знает, как во время выполнения проги, создать еще одну форму?
Как обратиться к этой форме, как создать элементы на этой форме???
Заранее всем пасибо!!!
Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.
![]() ![]() |
| AlexPS |
Сообщение
#1
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 34 Пол: Мужской Репутация: -1 |
Чуваки, а кто-нить знает, как во время выполнения проги, создать еще одну форму?
Как обратиться к этой форме, как создать элементы на этой форме??? Заранее всем пасибо!!! -------------------- @13][ P.$.
www.alex-ps.com |
| volvo |
Сообщение
#2
|
|
Гость |
AlexPS
А кто мешает тебе сделать что-то типа такого: Первый Unit Код unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private public end; var Form1: TForm1; implementation uses Unit2; {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin ShowMyForm; end; end. Второй Unit Код unit Unit2; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs; type TForm2 = class(TForm) private public end; var Form2: TForm2; procedure ShowMyForm; implementation {$R *.dfm} procedure ShowMyForm; begin Form2:=TForm2.Create(nil); try Form2.ShowModal; finally Form2.Free; end; end; end. Только не забудь выключить автоматическое создание для Form2 Для элементов формы аналогично ... |
| AlexPS |
Сообщение
#3
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 34 Пол: Мужской Репутация: -1 |
Это не совсем то, что мне надо. Тут я должен предварительно создать все формы, которые будут использоваться. А мне нужно, чтобы этих форм могло быть ОЧЕНЬ много, ну типа, чтобы мне их все вручную не создавать.
А может, я че не так понял..... Ну так надо было уточнять, есть несколько способов динамического создания форм, откуда я должен знать, о каком идет речь?... Сообщение отредактировано: volvo - -------------------- @13][ P.$.
www.alex-ps.com |
| xds |
Сообщение
#4
|
![]() N337 ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 737 Пол: Мужской Репутация: 26 |
1) создаешь форму;
2) Project/Options/Forms: переносишь её из "Auto-create" в "Available"; 3) в нужном месте подключаешь модуль с формой (uses) и создаешь её с помощью метода Application.CreateForm. В принципе, можно обойтись вызовом конструктора самой формы - создавать последнюю как любой другой объект. Целиком автономную форму можно создать как объект класса TForm. Элементы на нее добавляются методом TForm.InsertControl. Сообщение отредактировано: xds - -------------------- The idiots are winning.
|
| P@sh@ |
Сообщение
#5
|
|
Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 180 Пол: Мужской Репутация: 2 |
Вот этот метод (обработчик нажатия кнопки) создает с нуля форму с надписью:
Код procedure TForm1.Button1Click(Sender: TObject); var frm: TForm; lbl: TLabel; begin frm:=TForm.Create(Application); frm.BoundsRect:=Rect(100,100,500,300); lbl:=TLabel.Create(frm); lbl.Left:=50; lbl.Top:=50; lbl.Caption:='proba'; lbl.Parent:=frm; // или frm.InsertControl(lbl); - одно и то же frm.Show; end; |
| AlexPS |
Сообщение
#6
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 34 Пол: Мужской Репутация: -1 |
Чуваки, я знал, что вы мне поможете, теперь все просто зашибись!!!
Пасибо!!! -------------------- @13][ P.$.
www.alex-ps.com |
| AlexPS |
Сообщение
#7
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 34 Пол: Мужской Репутация: -1 |
Конечно все ето крута, только вот я че не понял: а как бы мне управлять элементами н фозданной форме, например, создаю я Memo
Код var mem:TMemo; ... mem:=TMemo.Create(frm); mem.Left:=2; Mem.Top:=2; Mem.Height:=200; Mem.Width:=388; Mem.ScrollBars:=SsVertical; Mem.Parent:=frm; ... А как бы мн в этот Memo добавить че-нить с главной формы. Или, еще, например на этой форму есть кнопка, как обработать ее нажатие Естественно, всем еще раз заранее пасибо большое. Сообщение отредактировано: volvo - -------------------- @13][ P.$.
www.alex-ps.com |
| P@sh@ |
Сообщение
#8
|
|
Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 180 Пол: Мужской Репутация: 2 |
чтобы кнопки обрабатывать, напиши заранее обработчик события:
Код type TForm1=class(TForm) ... procedure MyButtonClick(Sender: TObject); ... end; ... implementation ... procedure TForm1.MyButtonClick(Sender: TObject); begin // ... обращение к вызвавшей обработчик кнопке: TButton(Sender).Caption:='Нажата'; end; и назначь его кнопке при создании: Код ... bt:=TButton.Create(frm); ... bt.OnClick:=MyButtonClick; ... а в Memo как обычно пиши - Memo.Lines.Add('aaa'); только для этого придется переменную описать не в процедуре, а, например, в классе, чтоб ссылка не потерялась Сообщение отредактировано: P@sh@ - |
![]() ![]() |
|
Текстовая версия | 19.12.2025 11:38 |