求教一种属性的写法!(100分)

  • 主题发起人 主题发起人 jbas
  • 开始时间 开始时间
J

jbas

Unregistered / Unconfirmed
GUEST, unregistred user!
我想在一个循环中,实现动态的分配各属性值及读出!如下写法不行:
for i:=1 to 10 do
begin
(tabsheet+inttostr(i)).Caption:=inttostr(i);
end;
即要实现tabsheet1,tabsheet2...这些动态生成1,2,3,序列号!不知我说清楚了吗?

 
procedure TForm1.Button1Click(Sender: TObject);

var
i: Integer;
const
NamePrefix = 'MyEdit';
begin
for i := 1 to 20 do
begin
TEdit.Create(Self).Name := NamePrefix + IntToStr(i);
with TEdit(FindComponent(NamePrefix + IntToStr(i))) do
begin
Left := 10;
Top := i * 20;
Parent := self;
end;
end;
end;
 
将TabSheet1..TabSheetN放在一个动态数组中TabSheetArray
for i:=1 to 10 do begin
TabSheetArray[i-1].Caption:=inttoStr(i);
end;
 
我试了一下!把这些东西如:label1,label2,label3。。。等全写到数组中,再读出来,还是不行!
sz.caption:='aaa'不行!
 
to tseug,
控件已经有了,还能用吗?
 
可以,你看一下 FindComponent的帮助
 
谢谢tseug,大家!解决了。
procedure TForm1.Button2Click(Sender: TObject);
var
i:integer;
my:string;
begin
for i:=1 to 3 do
begin
my:='label'+inttostr(i);
tlabel(FindComponent(my)).Caption:=inttostr(i);
end;
end;
 
后退
顶部