| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1400 人关注过本帖
标题:为何用变量代替label无效?
只看楼主 加入收藏
jzry
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2005-8-3
收藏
 问题点数:0 回复次数:9 
为何用变量代替label无效?

想更新label1-label400的caption为空,循环程序如下:

var i:integer;
w1,w2,w3:string;
begin
for i:=1 to 400 do
begin
w1:='label';
w2:=inttostr(i);
w2:=w1+w2;
w3:='.caption';
w3:='';
end;
end;

结果label的caption仍为原值,如何循环清空?请指教!

搜索更多相关主题的帖子: label 变量 caption begin 代替 
2005-11-26 10:39
zhangzujin
Rank: 1
等 级:新手上路
帖 子:276
专家分:0
注 册:2005-5-9
收藏
得分:0 
w1:='label'; //把label赋给w1
w2:=inttostr(i); // w2是i(字符)了
w2:=w1+w2; // 呵呵,w2是labeli了
w3:='.caption'; // w2是".caption"了
w3:='';// w3是空字符了

这样有什么用啊。

太极之道 qq:283421560 E-mail:zhangzujin360732@
2005-11-26 15:19
zhangzujin
Rank: 1
等 级:新手上路
帖 子:276
专家分:0
注 册:2005-5-9
收藏
得分:0 

delphi中不知道怎么做,但VB中有控件的数组表示。
VC中也更好做。


太极之道 qq:283421560 E-mail:zhangzujin360732@
2005-11-26 15:24
jzry
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2005-8-3
收藏
得分:0 

谢谢这位仁兄的回答!
下面是更正过的程序,可这样为什么也不行?delphi真的做不到吗?
var i:integer;
w1,w2,w3:string;
begin
for i:=1 to 400 do
begin
w1:='label';
w2:=inttostr(i);
w2:=w1+w2;
w3:='.caption';
w3:=w2+w3'';//w3为labeli.caption
w3:='';
end;
end;

2005-11-26 16:06
first181
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2005-11-6
收藏
得分:0 
参考这句啦。
var
i:integer;
begin
for i:=1 to 34 do
begin
tlabel(FindComponent('label'+inttostr(i))).Text :='';
2005-11-27 16:42
jzry
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2005-8-3
收藏
得分:0 

非常感谢5楼的朋友的回答,真的解决了!真的好高兴!实实在在兴奋了一阵子~~~

但有一个限制条件,下面程序有效:
var
i:integer;
begin
ADOTable1.TableName:='ybbb';
ADOTable1.Active:=true;

for i:=1 to 34 do
begin
tlabel(FindComponent('label'+inttostr(i))).Text :='';
end;

with adotable1 do
begin

//其它命令行

end;

end;


下面程序无效:

var
i:integer;
begin
ADOTable1.TableName:='ybbb';
ADOTable1.Active:=true;

with adotable1 do
begin

for i:=1 to 34 do
begin
tlabel(FindComponent('label'+inttostr(i))).Text :='';
end;

end;

end;


即 放在 with adotable1 do begin end; 语句中间无效!之外有效!烦请再解决!真心感谢!

2005-11-28 07:06
yang39921
Rank: 1
等 级:新手上路
帖 子:73
专家分:0
注 册:2005-10-10
收藏
得分:0 
你可以看一下我上面所發的帖子,是清空所有編輯框的,我想應該大同小億

夢想成爲一個編程高手
2005-11-28 08:35
ysp_1984
Rank: 5Rank: 5
等 级:贵宾
威 望:15
帖 子:371
专家分:0
注 册:2006-1-5
收藏
得分:0 

再给你个提示:
procedure TForm1.Button1Click(Sender: TObject);
var
i: integer;
frmcomponent:Tcomponent;
begin
for i:=0 to form1.ComponentCount-1 do
begin
frmcomponent:=form1.Components[i];
if ( frmcomponent is Tlabel) then
(frmcomponent as Tlabel).Caption:='';

end;
end;

end.


心中的那片蓝天,永远为你而存在... ...
2006-01-05 05:42
ysp_1984
Rank: 5Rank: 5
等 级:贵宾
威 望:15
帖 子:371
专家分:0
注 册:2006-1-5
收藏
得分:0 
五楼的有个缺陷就是如果label的名字不是默认的,上述代码不成立。例如:如果把label1,label2,...label34。改为:lblone,lblseconed,....,上述代码就不成立了。。
就是这句话: 'label'+inttostr(i)

心中的那片蓝天,永远为你而存在... ...
2006-01-05 05:49
ysp_1984
Rank: 5Rank: 5
等 级:贵宾
威 望:15
帖 子:371
专家分:0
注 册:2006-1-5
收藏
得分:0 
五楼的有个缺陷就是如果label的名字不是默认的,上述代码不成立。例如:如果把label1,label2,...label34。改为:lblone,lblseconed,....,上述代码就不成立了。。
就是这句话: 'label'+inttostr(i)

心中的那片蓝天,永远为你而存在... ...
2006-01-05 05:50
快速回复:为何用变量代替label无效?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.030936 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved