如何引用动态生成的控件?(75分)

  • 主题发起人 主题发起人 Nstar
  • 开始时间 开始时间
N

Nstar

Unregistered / Unconfirmed
GUEST, unregistred user!
比如我生成了三个控件,名称分别为cb1,cb2,cb3
那么我如何引用它呢?这样当然不行:cb1.Text:='aaaaaaaa';
那么应该怎么做呢?
 
用控件数组来做,通过TAG来判断对应的控件,
一般是在FORMCREATE里生成控件,在FORMCLOSE里FREE掉
Header:array [1..MAXint]of TSpeedButton;

for i:=1 to MAXint do
//建立Header
begin
Header:=TSpeedButton.Create(self);
with Headerdo
begin
Parent:=ListBox1;
Align:=alNone;
Left:=0;
if i<>1 then
Top:=ListBox1.Height-4-(MAXint-1)*21+(i-2)*21
else
Top:=0;
Width:=ListBox1.Width-4;
Tag:=i;
Height:=21;
Cursor:=crHandPoint;
Caption:='第'+inttostr(i)+'个头按钮';
Header.BringToFront;
Transparent:=false;
//关联事件
OnMouseUp:=Form1.up;
onClick:=Form1.Click;
end;
end;
以后可以通过控件数组的下标来引用控件
 
for i:=1 to 3 do

begin
with TType(FindComponent(c+ IntToStr(i))) do
begin
text:='tggggggg'
end;
end
 
既然知道是什么类型的,直接硬制转换就行了
 
多人接受答案了。
 
后退
顶部