怎樣遍歷窗體上的控件(50分)

  • 主题发起人 主题发起人 zhangceyong
  • 开始时间 开始时间
Z

zhangceyong

Unregistered / Unconfirmed
GUEST, unregistred user!
怎樣遍歷窗體上的控件,判斷是哪一類,且對控件屬性操作.
 
for i:=0 to ComponentCount-1 do
if Components.ClassName= 'TEdit' then
(Components as TEdit).Text:='This is a TEdit'
else if Components.ClassName='TLabel' then
(Components as TLabel).Caption:='This is a TLabel'
else...
 
基本原理就是象grhunter所说,不过要注意如果窗体上有一个panel,而
panel上有一个label,这个label是不属于form的component的.
需要用
for i := 0 to panel1.ControlCount - 1 do
begin
listbox1.Items.Add(panel1.Controls.Name);
end;
所以其实遍历还是挺麻烦的.要写一个递归函数吧.
不过遍歷窗體上的控件有必要吗,如果要写的通用的话,至少我的水平,
要费很大功夫.
 
对某类控件的属性进行操作可以利用Sender:
(sender as TControl).Enabel := false;
 
for i := 0 to ComponentCount-1 do
begin
if Components.ClassName = 'TEdit' then
begin
(Components as TEdit).Text := '12354';
end;
end;
 
for i:=0 to ComponentCount-1 do
Components......
 
bluerain的分解已經很具水平了﹐就不要謙虛了﹐
這方面的知識點大概就這樣了。佩服﹗
 
后退
顶部