一个关于指针的问题,请教大家。

cggong 2011-08-24 10:08:45
比如说一个窗体中有四个Label:Label1..Label4.
我想给他们的Text属性分别赋值为1,2,3,4,能不能用for语句?

我希望能这样:
const
Labels: Array[0..3] of ^Label =(@Label1,@Label2,@Label3,@Label4);
begin
for i:=0 to 3 do Labels[I]^.text:= inttostr(i);
end;
但是不能通过编译,请高手帮忙改下,或者有别的办法,先谢了!
...全文
83 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
广州佬 2011-08-25
  • 打赏
  • 举报
回复
如果那4个TLabel的名字没带数字序列号的,可以这样:

var i:integer;
Labels: Array[0..3] of TLabel;
begin
Labels[0]:=startLbl;//相当于Label1
Labels[1]:=endLbl;//相当于Label2
Labels[2]:=connLbl;//相当于Label3
Labels[3]:=countLbl;//相当于Label4
for i:=0 to 3 do Labels[i].Caption:= inttostr(i);
end;
kaikai_kk 2011-08-25
  • 打赏
  • 举报
回复
使用Controls或Components循环给数组赋值
jdbca 2011-08-24
  • 打赏
  • 举报
回复
var
i,c: integer;
begin
c:=1;
for i := 0 to self.ComponentCount - 1 do
begin
if self.Components[i] is TLabel then
(self.Components[i] as TLabel).Caption := inttostr(c);
inc(c);
end;
end;
nana20082009abc 2011-08-24
  • 打赏
  • 举报
回复
var
_Label:TLabel;
i:integer;
begin
For i:=1 to 4 do
if FindComponent('Label'+inttostr(I)) <> nil then
begin
_Label:=FindComponent('Label'+inttostr(I))as TLabel;
_Label.Text:=inttostr(i);
end;
end;

16,742

社区成员

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

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