Иногда бывает нужно создать массив визуальных компонентов,
например, кнопок. Хотя этого нельзя сделать средствами IDE,
как, например, в Visual Basic'е, это все же возможно:
Предположим, что нужно создать массив из 5 кнопок.
type
TForm1 = class(TForm)
Label1: TLabel;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
Buttons: Array[1..5] of TButton;
procedure ButtonsDown(Sender: TObject);
end;
//......................
procedure TForm1.FormCreate(Sender: TObject);
var i: integer;
begin
for i:=1 to 5 do begin
Buttons[i]:=TButton.Create(Self);
with Buttons[i] do begin
parent:=self;
caption:='Кнопка ¹'+IntToStr(i);
tag:=i;
top:=i*30;
onClick:=ButtonsDown;
// Это добавление кнопки в массив контролов формы !
self.InsertControl(Buttons[i]);
end;
end;
end;
//Через свойство Tag программа узнает, какая кнопка нажата
procedure TForm1.ButtonsDown(Sender: TObject);
begin
Label1.Caption:='Нажата кнопка ¹'+IntToStr((Sender as TButton).Tag);
end;
Источник: www.delphikingdom.ru
|