ПредишенСледващото

Днес нека да поговорим за това как да създадете компоненти по време на изпълнение.

Понякога не е известен предварително броя на компонентите. Ето защо, Delphi има способността да ги създадете от програмата. За да направите това, просто се обадете на Създаване строителя, задаване на необходимите свойства и събития. А за появата на компонента на екрана, за да инсталирате родителската собственост.

Когато кликнете върху левия бутон на мишката, програмата създава Бътън, и когато щракнете върху правото - панел. В случаите, когато компонентите са създадени, когато мишката е. Ако сте кликнали върху Panel1, компонентът ще се появи в Panel1.
.
обществен
процедура OnButtonClick (Sender: TObject);
приключи;

Var
Form1: TForm1;

използва stdctrls, extctrls;

процедура TForm1.OnButtonClick (Sender: TObject);
започвам
ако Sender е TButton след това
с (подателя като TButton) направи
Заглавие: = + надпис "1";
приключи;

процедура TForm1.FormMouseDown (Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: цяло число);
Var б: TButton;
р: TPanel;
започвам
ако Бутон = mbRight след това
започвам
р: = TPanel.Create (нула);
p.Caption: = "панел" + IntToStr (случаен (100));
p.Left: = X;
p.Top: = Y;
p.Width: = случаен (200) + 100;
p.Height: = случаен (200) + 100;
p.OnMouseDown: = Form1.OnMouseDown;
p.Parent: = подателя като TWinControl;
сложи край на друг
започвам
б: = TButton.Create (нула);
b.Caption: "бутон" = + IntToStr (случаен (100));
b.ShowHint: = вярно;
b.Hint: = "Съвет за" + b.Caption;
b.Left: = X;
b.Top: = Y;
b.OnClick: = OnButtonClick;
b.Parent: = подателя като TWinControl;
приключи;
приключи;

Но може да се наложи нещо общо с компонентите, след като те са създадени. В този случай, трябва да се създаде масив, в който тези компоненти ще лъжат. Тази програма се съхранява в масив от 100 ключове. Когато промените размера на прозореца бутони се пренареждат.

Var
б: масив [0..99] на TButton;

процедура TForm1.FormCreate (Sender: TObject);
Var I: цяло число;
C: цяло число;
започвам
в: = Form1.ClientWidth DIV 52;
защото: = ниско (б) за високо (б) направи
започвам
б [Ь]: = TButton.Create (нула);
б [Ь] .Caption: = IntToStr (I + 1);
б [Ь] .Width: = 50;
б [Ь] .Height: = 20;
б [Ь] .Left: = 52 * (I мод в);
б [Ь] .Top: = 22 * ​​(I DIV в);
б [Ь] .Parent: = Form1;
приключи;
приключи;

процедура TForm1.FormResize (Sender: TObject);
Var I: цяло число;
C: цяло число;
започвам
в: = Form1.ClientWidth DIV 52;
защото: = ниско (б) за високо (б) направи
започвам
б [Ь] .Left: = 52 * (I мод в);
б [Ь] .Top: = 22 * ​​(I DIV в);
приключи;
приключи;

Свързани статии

Подкрепете проекта - споделете линка, благодаря!