关于TLabel和数组的使用(30分)

  • 主题发起人 主题发起人 莫征文
  • 开始时间 开始时间

莫征文

Unregistered / Unconfirmed
GUEST, unregistred user!
我想实现这么一个功能:
我定义了一个数组:MYARRAY[1..30],然后在FORM上放置30个TLABEL
控件LABEL1、LABEL2、……LABEL30,
我想用一个循环语句给TLABEL赋值:
LABEL1.CAPTION:=MYARRAY[1]、
LABEL2.CAPTION:=MYARRAY[2]……
LABEL30.CAPTION:=MYARRAY[30]
只能用循环语句实现!
哪位大虾给帮帮忙?30分,不够再给!
 
var
tempedit:array[1..30] of TEdit;
for i:=1 to 30 do
tempeditx.text:=MYARRAY[1];

end;
 
label 的 tag 设为1-30
for i:=0 to componentcount-1 do
if compontents is tlabel then
begin
if (compontents as tlabel).tag>1 and (compontents as tlabel).tag<31 then
(compontents as tlabel).caption:=MYARRAY[(compontents as tlabel).tag];
end;

不知道语句对不对,大体意思
 
var
i,k:integer;
begin
k:=0;
for i:=0 to ComponentCount-1 do begin
if Components is TLable then begin
Components.Caption:=MYARRAY[k];
inc(k);
end;
end;
end;

 
for i:=1 to 30
tlabel(Findcomponent(LABEL+inttostr(i))).caption:=MYARRAY;
 
cbdiy 兄的的
tlabel(Findcomponent(LABEL+inttostr(i))).caption:=MYARRAY;
~~~~~
应是:'LABEL'
 
var
tempedit:array[1..3] of Tlabel;
myarray:array[1..3] of string;
i:integer;
begin
myarray[1]:='abc';
myarray[2]:='bcd';
myarray[3]:='cde';
tempedit[1]:=label1;
tempedit[2]:=label2;
tempedit[3]:=label3;
for i:=1 to 3 do
tempedit.Caption:=myarray;
end;
打个1..3的比方
 
来个EMAIL,我发个例子给你,b5790930@pub.xz.jsinfo.net
 
我刚好编写了这种程序,动态建立许多lable,你如果只是循环语句给TLABEL赋值,
那也太简单了,上面的方法都可以,你把30分分掉吧,能不能给我几分?
 
To:zhoulide
能给我发一些你写的动态建立TLABEL的例程给我吗?谢谢了!
我的E-MAIL:MOZHWE_CN@.SINA.COM
 
可以的,不过程序很多,我给你说说吧,我用delphi 写的
1.定义一个数组,不用写长度,动态建立长度
var
label_fh:array of TLabel; //产生房号的label
2.在程序的建立部分设置长度,RecordCount是变量,确定其长度
SetLength(label_fh,RecordCount);
3. 建立并显示label,它的Parent值最重要,Parent是label放置的地方,
for newi:=0 to RecordCount-1 do
begin
label_lc[newi]:=tlabel.Create(self);//建立
label_lc[newi].Parent:=ScrollBox1;//设置放置的地方
label_lc[newi].visible:=True;
label_lc[newi].Height:=20;
label_lc[newi].Width:=30;
label_lc[newi].Color:=clBtnFace;
label_lc[newi].caption:='第'+inttostr(k-newi)'层';
label_lc[newi].Layout:=tlcenter;
label_lc[newi].Font.Name:='宋体';
label_lc[newi].Font.Size:=9;
label_lc[newi].AutoSize:=false;
label_lc[newi].Top:=ScrollBox1.Top+25+TopLegth;
label_lc[newi].Left:=ScrollBox1.Left+3;
TopLegth:=TopLegth+25;
label_lc[newi].show;
sunLabel2:=newi;
end;
4.用完了释放
label_fh:=nil;
5.清去ScrollBox1的label
for i:=ScrollBox1.ControlCount-1 downto 0 do
ScrollBox1.Controls.Free;
哥们,给几个分数吧。哈哈。
 
谢谢各位了!
我实际中用了“for i:=1 to 30
tlabel(Findcomponent(LABEL+inttostr(i))).caption:=MYARRAY;”
着一句,其他各位的都很好,我从中学到很多东西的。
 
后退
顶部