Форум: "Начинающим";
Текущий архив: 2006.08.13;
Скачать: [xml.tar.bz2];
ВнизДинамическое создание формы Найти похожие ветки
← →
Mr.Grey (2006-07-24 04:09) [0]Как чтобы по нажатию кнопки на одной форме в заданных координатах и с заданными параметрами создавалась вторая форма?
← →
Джо © (2006-07-24 04:11) [1]Например, так:
procedure TForm1.Button1Click(Sender: TObject);
var
Frm: TForm2;
begin
Application.CreateForm(TForm2, Frm);
Frm.Left := 10;
Frm.Top := 10;
Frm.Show
end;
← →
ApColEr (2006-07-25 21:58) [2]Как сделать, чтобы по нажатию на кнопку создавались каждый раз новые формы с новыми координатами неограниченное число раз?
← →
TForm (2006-07-25 22:07) [3]Типа так
procedure CreateForm(const X, Y: Integer);
var
Frm: TForm2;
begin
Application.CreateForm(TForm2, Frm);
Frm.Left := X;
Frm.Top := Y;
Frm.Show
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
CreateForm(Random(Screen.Width), Random(Screen.Heigth));
end;
← →
Zeqfreed © (2006-07-25 22:10) [4]> [2] ApColEr (25.07.06 21:58)
procedure TForm1.Button1Click(Sender: TObject);
begin
Tag := 1;
while (MessageBox(Handle, "Создать ещё одну форму?", "Вопрос жизни и смерти", MB_YESNO or MB_ICONQUESTION) = IDYES) do
with TForm1.Create(Application) do begin
Caption := "Form #" + IntToStr(Self.Tag);
Left := Random(Screen.Width - 100);
Top := Random(Screen.Height - 100);
Width := Min(Screen.Width - Left, Random(Screen.Width));
Height := Min(Screen.Height - Top, Random(Screen.Height));
Visible := True;
BringToFront;
Self.Tag := Self.Tag + 1;
end;
end;
← →
Loginov Dmitry © (2006-07-25 22:11) [5]with TForm.Create(Self) do
begin
Left := Random(Screen.Width);
Top := Random(Screen.Width);
Show;
end;
Компактнее, имхо
← →
ApColEr (2006-07-25 22:40) [6]Loginov Dmitry, спасибо..
А как теперь к ним обратиться? Например,при нажатии на динамически созданную форму на ней создавался label?
← →
Джо © (2006-07-26 02:59) [7]> [6] ApColEr (25.07.06 22:40)
> А как теперь к ним обратиться? Например,при нажатии на
> динамически созданную форму на ней создавался label?
В дизайнере переходишь на нужную форму, переключаешься на вкладку "Events" в Object Inspector"е, дважды шелкаешь на OnClick. В открывшемся редакторе кода пишешь (между begin и end):with TLabel.Create (Self) do
begin
Parent := Self;
Left := Random (Self.Width);
Top := Random (Self.Height);
Caption := "My label"
end
При необходимости добавить StdCtrls в uses.
← →
GrayFace © (2006-07-26 06:05) [8]Чтобы обратиться извне - array of TForm2, SetLength и все дела. Еще все переменные формы 2 надо описывать в ней (в секции public, private или protected), а не var"ами. (к локальным переменным функций не относится) И переменную Form2 убери, все функции вноси в класс формы.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.08.13;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.046 c