给多个Tlabel的caption赋值.

YiOnLine 2005-03-27 01:12:08
前两天在论坛碰到这问题
form1上有12个Tlabel,要分别给caption赋值'1','2'..'12',有朋友的解答为:

var
AComp: TComponent;
begin
for I := 1 to 12 do
begin
AComp := FindComponent('label' + IntToStr(I));
if AComp is TLabel then
TLabel(AComp).Caption := inttostr(i);
end;
end;

请问如果Tlabel的默认的name值已经被修改,
即是不用FindComponent函数能不能实现要求?

或者Tlabel的个数不定,又应该怎实现?

...全文
119 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
YiOnLine 2005-03-27
  • 打赏
  • 举报
回复
form1上有N个Tlabel,要分别给caption赋值'1','2'..'N'

var
i,j:Integer;
begin
j:=0;
for i:=0 to Self.ComponentCount-1 do //或者
//for i:=0 to Self.ControlCount-1 do
begin
if Self.Components[i] is TLabel then
begin
TLabel(Self.Components[i]).Caption:=IntToStr(j);
Inc(j);
end;
end;
end;


另:如果确实N值,而且TLabel控件的默认Name值未改变,以下写法可实现
var
AComp: TComponent;
begin
for I := 1 to 10 do
begin
AComp := FindComponent('label' + IntToStr(I));
if AComp is TLabel then
TLabel(AComp).Caption := inttostr(i);
end;
end;

caiso 2005-03-27
  • 打赏
  • 举报
回复
帮顶一下
dezxp 2005-03-27
  • 打赏
  • 举报
回复
var
i,j:Integer;
begin
j:=0;
for i:=0 to Self.ComponentCount-1 do
begin
if Self.Components[i] is TLabel then
begin
TLabel(Self.Components[i]).Caption:='label'+IntToStr(j);
Inc(j);
end;
end;
end;

16,742

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧