![]() |
Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
![]() ![]() |
![]() |
AlexPS |
![]()
Сообщение
#1
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 34 Пол: Мужской Репутация: ![]() ![]() ![]() |
Чуваки, а кто-нить знает, как во время выполнения проги, создать еще одну форму?
Как обратиться к этой форме, как создать элементы на этой форме??? Заранее всем пасибо!!! -------------------- @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 Пол: Мужской Репутация: ![]() ![]() ![]() |
Это не совсем то, что мне надо. Тут я должен предварительно создать все формы, которые будут использоваться. А мне нужно, чтобы этих форм могло быть ОЧЕНЬ много, ну типа, чтобы мне их все вручную не создавать.
А может, я че не так понял..... ![]() Ну так надо было уточнять, есть несколько способов динамического создания форм, откуда я должен знать, о каком идет речь?... Сообщение отредактировано: volvo - 17.01.2005 9:07 -------------------- @13][ P.$.
www.alex-ps.com |
xds |
![]()
Сообщение
#4
|
![]() N337 ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 737 Пол: Мужской Репутация: ![]() ![]() ![]() |
1) создаешь форму;
2) Project/Options/Forms: переносишь её из "Auto-create" в "Available"; 3) в нужном месте подключаешь модуль с формой (uses) и создаешь её с помощью метода Application.CreateForm. В принципе, можно обойтись вызовом конструктора самой формы - создавать последнюю как любой другой объект. Целиком автономную форму можно создать как объект класса TForm. Элементы на нее добавляются методом TForm.InsertControl. Сообщение отредактировано: xds - 17.01.2005 4:37 -------------------- The idiots are winning.
|
P@sh@ |
![]()
Сообщение
#5
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 180 Пол: Мужской Репутация: ![]() ![]() ![]() |
Вот этот метод (обработчик нажатия кнопки) создает с нуля форму с надписью:
Код 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 Пол: Мужской Репутация: ![]() ![]() ![]() |
Чуваки, я знал, что вы мне поможете, теперь все просто зашибись!!!
Пасибо!!! -------------------- @13][ P.$.
www.alex-ps.com |
AlexPS |
![]()
Сообщение
#7
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 34 Пол: Мужской Репутация: ![]() ![]() ![]() |
Конечно все ето крута, только вот я че не понял: а как бы мне управлять элементами н фозданной форме, например, создаю я 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 - 21.01.2005 18:27 -------------------- @13][ P.$.
www.alex-ps.com |
P@sh@ |
![]()
Сообщение
#8
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 180 Пол: Мужской Репутация: ![]() ![]() ![]() |
чтобы кнопки обрабатывать, напиши заранее обработчик события:
Код 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@ - 24.01.2005 9:38 |
![]() ![]() |
![]() |
Текстовая версия | 18.06.2025 8:24 |