我给控件编号以便在程序中以编号进行循环,可是却找不到该控件,求助!(50)

  • 主题发起人 主题发起人 goltiger
  • 开始时间 开始时间
G

goltiger

Unregistered / Unconfirmed
GUEST, unregistred user!
我用了Tlabel(findcomponent('label'+inttostr(26+i))).Caption :=inttostr(i)进行循环取数,可是返回为空,在窗体中已有label26,label27,label28等,但没有Label3,label4等,请指教!
 
我测试了~~没有问题~~procedure TForm1.Button1Click(Sender: TObject);var i : integer;begin for i := 1 to 10 do begin Tlabel(findcomponent('label'+inttostr(26+i))).Caption :=inttostr(i) end;end;
 
inttostr(26+i)看到这句了吗你的赋值当然从26开始了
 
你如果用findcomponent的话,那要注意,必须在 Form下找,即用 self.findcomponent 或者 Form1.findcomponent, 如果要在某个容器下找,要用Controls,如 GroupBox1.Controls估计你找不到的原因,是前面有with语句,这样相当于在这个组件下找,当然找不到了。
 
我是在panel中,可是panel中既有label,又有image,怎样区分它们(panel1.controls)。二者都要编号进行使用。
 
label1,image1,lable2,image2~~不可以吗?
 
谢谢,加上self就解决问题了  self.findcomponent ,因为我的label都在panel中。
 
if (Panel1.Controls[0]) is tlabel then begin TLabel(Panel1.Controls[0]).Caption := '0'; end;
 
用Tag不方便点么
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
535
import
I
I
回复
0
查看
948
import
I
后退
顶部