怎样引用生成的组件 ( 积分: 20 )

  • 主题发起人 主题发起人 mydelphibbs8848
  • 开始时间 开始时间
M

mydelphibbs8848

Unregistered / Unconfirmed
GUEST, unregistred user!
一般的
var a,b,c:text
begin
a:=creat(text)
b:=creat(text)
end
但我要生成的text数量不定,不一定是三个,可能是N个,怎么办
我设想先定义一个TEXT数组,可是这样好象也不太方便,各位一般怎么做,否则我不是要先定义:var a,b,c,d,……
 
一般的
var a,b,c:text
begin
a:=creat(text)
b:=creat(text)
end
但我要生成的text数量不定,不一定是三个,可能是N个,怎么办
我设想先定义一个TEXT数组,可是这样好象也不太方便,各位一般怎么做,否则我不是要先定义:var a,b,c,d,……
 
1。你可以能过循环来找所有在窗体上的控件(前提是控件在窗体上)。
var i:integer;
for i:=0 to self.controlcount-1 do
begin
if self.controls is text then//
begin
(self.controls as text).....//做你要做的事
end;
end;
2。如果你生成的对象不是在窗体上,你可以在生成控件之时加入一个Tlist中,要用的时候循环Tlist里的控件,做你要做的事(这个方法有点象VB中的控件数组)
 
procedure TForm1.Button1Click(Sender: TObject);
var
i : Integer;
BCount : Integer;
ButtonList : Array of TButton;
begin
BCount := 3
// just you need
SetLength(ButtonList, BCount);

for i := 0 to BCount - 1 do
begin
ButtonList := TButton.Create(Form1);
// 其它代码

end;

end;
 
用数组应该是最直接的方法。如果还觉得不便,可以在生成的过程中给每个控件附上名字
(例如:Text1,Text2,...),到时候用FindComponent来定位——当然,少不了类型转换的
工作。
 
后退
顶部