var mybtn: array of tbutton;
begin
for i=1 to 10 do mybtn(i).create(self);
mybtn(1).caption:='a';
mybtn(2).caption:='b';
.........
for i=1 to 10 do mybtn(i).free;
end;
begin
for i=1 to 10 do mybtn(i).create(self);
mybtn(1).caption:='a';
mybtn(2).caption:='b';
.........
for i=1 to 10 do mybtn(i).free;
end;
var i:integer;
begin
SetLength(arrBtn, 10);
for i:=0 to 9 do begin
arrBtn[i] := TButton.Create(self);
arrBtn[i].Caption := 'button' + IntToStr(i);
arrBtn[i].width := 100;
//.....设置其它属性
arrBtn[i].tag := i; //标识控件标志,以便在以后的事件处理函数中识别该控件。
arrBtn[i].OnClick := OnMyButton;
end;
end;//自定义的事件响应过程OnMyButton
procedure OnMyButton(Sender: TObject);
begin
//根据上面设置的tag值来判断按下的是哪个动态生成的控件 case TButton(Sender).tag of
1 : begin
//数组按钮1触发的事件
end;
2 : begin
//数组按钮2触发的事件
end;
3 ://....................... else..................
end;end;
你的动态数组还没有定义长度怎么可以直接对其中的对象Create呢?
if (Self.Components[i].classType = TSpeedButton) then
TSpeedButton(Self.Components[i]).Caption ;= ...
end;//for