我想把所有的可视控件都社成Disabled?
现在不知道怎么列举。用Components可以列举,但怎么判断是不是可视的?

解决方案 »

  1.   

    var
     i:Integer;
    begin
     for i:=0 to Self.ControlCount-1 do
        Controls[i].Visible:=not Controls[i].Visible;
      

  2.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      iLoop:Integer;
      ControlName:String;
    begin
      Memo1.Clear;
      for iLoop := 0 to Self.ComponentCount-1 do
      begin
        ControlName := Self.Components[iLoop].Name;
        Memo1.Lines.Add(ControlName);
      end;
    end;
      

  3.   

    interface
     uses  ...Typinfo...;....
    varPropInFo:PPropinfo;
    begin
    ...
    PropInfo := GetPropInfo(Components[i].ClassInfo,'Enabled');
    //判断该组件是否有Enabled属性。
    if PropInfo <> nil then
    //设置Enabled为False
    SetOrdProp(Components[i],PropInfo,False);
    ...
    end;
      

  4.   

    恩, huangrenguang(湖) ( 
    有里
    Controls就是可视的。
    也感谢: diruser(年年有大运!) 
    给分了