随笔 - 2146  文章 - 97 评论 - 11767 trackbacks - 253

//显示窗体中所有控件的函数
function GetCtrls(Control: TWinControl; List: TStringList): Boolean;
var
  i: Integer;
  obj: TWinControl;
begin
  for i := 0 to Control.ControlCount-1 do
  begin
    obj := TWinControl(Control.Controls[i]);
    List.Add(obj.Name);

    //如果控件中包含其他控件, 则递归调用
    if obj.ControlCount > 0 then
    begin
      GetCtrls(obj, List);
    end;
  end;
  Result := True;
end;


//调用测试
procedure TForm1.Button1Click(Sender: TObject);
var
  list: TStringList;
begin
  list := TStringList.Create;
  GetCtrls(Self, list);   {调用函数}
  ShowMessage(list.Text); {显示窗体中所有控件的名称}
  list.Free;
end;

posted on 2008-01-13 21:04  万一  阅读(...)  评论(...编辑  收藏