怎样在程序中遍历某form有caption的控件,并将它们的caption加入到listbox1里面? ( 积分: 20 )

  • 主题发起人 主题发起人 rgn
  • 开始时间 开始时间
R

rgn

Unregistered / Unconfirmed
GUEST, unregistred user!
怎样在程序中遍历某form有caption的控件,并将这些有caption的控件的caption加入到listbox1里面?(这些控件包括有label、button、checkbox等等,不包括edit等)
procedure TForm1.Button1Click(Sender: TObject);
var
i: Integer;
begin
for i := 0 to ComponentCount - 1 do
begin
if Components is TLabel then
listbox1.Items.Add((Components as TLabel).Caption);
if Components is Tbutton then
listbox1.Items.Add((Components as Tbutton).Caption);
end;
end;
这段代码是分开一种一种的控件来添加,能否一次性添加,不用分哪种控件?
 
截了段测试代码,关于PPropInfo可参看全文检索
procedure TForm1.formout(fm: tform);
var
I:Integer;
PropInfo:PPropInfo;
begin
memo1.Lines.Clear;

Form1.Memo1.lines.Add(fm.Name+','+fm.Name+','+fm.Caption+','+inttostr(fm.tag) );

for I:=0 to Self.ComponentCount-1 do
begin
PropInfo:=GetPropInfo(Components.classinfo,'Caption');
if PropInfo<>nil then
begin
Form1.Memo1.lines.Add(fm.Name+','+components.Name+','+GetStrProp(Components,propinfo)+','+inttostr(components.tag) );
end;
end;
Form1.Memo1.Lines.SaveToFile('ctrltagbk.txt');
end;
 
不错,学习
 
它们添加的先后顺序是怎样确定的?我能否指定
 
我是想这样,有taborder的控件,按照taborder的顺序添加,可以吗?(当然这些有taborder的控件是有caption),我改变了它们的taborder,但是它们添加的顺序也和刚才一样。label可以放在最前面或者最后面
 

Similar threads

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