在一个Form中,我想知道这个Form中所有控件的各项值,如控件类型,值,控件名什么的,如何做到,另外,如果我知道控件名,如'edit1',如何在代码中控制edit1的属性和方法,谢谢先

解决方案 »

  1.   

    具体些,还有,control和components有什么区别
      

  2.   

    var
      i: Integer;
      s: string;
    begin
      for i := 0 to form1.componentcount-1 do
      begin
        s:=form1.components[i].Name;   //其他的属性类似
      end; 
    end;
      

  3.   

    如果你已经知道控件名和控件类型的话
    可以用
    TEdit(FindComponent('Edit1')).Text := 'aaa' ;//别的属性类似
      

  4.   

    control和components有什么区别?
    设计时可见的都为component
    运行时可见的为control
      

  5.   

    control指可视控件
    components指所有控件
      

  6.   

    Controls中的对象都是TControl派生类的对象
    Components中的对象都是TComponent派生类的对象TControl是TComponent的派生类,Component是组件,Control是可视组件即控件
      

  7.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      i : integer;
      aClassType,aName : string;
    // aClassType 为控件类型;aName为控件名称
    begin
      for i := 0 to ComponentCount-1 do begin
        aClassType := aClassType + ';'+Components[i].ClassName;
        aName := aName+';'+Components[i].Name;
      end;
      Caption := aClassType + aName;
    end;
      

  8.   

    ljmanage(过客) ( ) 就可以了,不过有个问题,如果在PANEL上放几个控件,如何遍历显示在PANEL上的所有控件呀?
      

  9.   

    for i := 0 to ControlCount - 1 do
           begin
           Memo1.Lines.Add(Self.Controls[i].Name);
           end ;//of for
      

  10.   

    回答zlyanyan(zl)procedure TForm1.Button1Click(Sender: TObject);
    var
      i : integer;
      aName : string;
    // aName为控件名称
    begin
      for i := 0 to ComponentCount-1 do begin    
        if Components[i].GetParentComponent.Name = 'Panel1' then begin
          aName := aName+';'+Components[i].Name;
        end;//end if;
      end;//end for
      Caption := aName;
    end;