如题

解决方案 »

  1.   

    for i:=0 to ComponentCount-1 do
    if self.Components[i].parent = panel1 then
      FindComponent[i].enable :=false;
    没有Delphi,但是以前就是这样实现的。
      

  2.   

    form.components[i].enables := false;
    panel.controls[i].enables := false;
      

  3.   

    function SetControlEnabled(Control :TWinControl; Enabled:boolean);
    var
      i:Integer;
    begin
      for i:=0 to Control.ControlCount-1 do
      begin
        Control.Controls[i].Enabled := Enabled;
        if Control.Controls[i] is TWinControl then
           SetControlEnabled(Control.Controls[i] as TWinControl; Enabled);
      end;
      Control.Enabled := Enabled;
    end;SetControlEnabled(Panel1, False);
      

  4.   

    其实设置Panel1的Enabled不就可以了吗?就已经把Panel1里面的属性全部设为False了吗...
      

  5.   

    设置panel1.enabled := false;
      

  6.   

    递归控制
    procedure TForm1.enableContolr(Acontrl: TWinControl;flag : Boolean);
    var
    i : integer;
    begin
       for i := 0 to Acontrl.ControlCount-1 do
       begin
          if Acontrl.Controls[i] is TWinControl then
            ((Acontrl.Controls[i]) as TWinControl).Enabled := flag;
          if Acontrl.Controls[i] is TCustomControl then
           enableContolr( (Acontrl.Controls[i] as TCustomControl),flag)
       end;end;procedure TForm1.Button2Click(Sender: TObject);
    begin
       enableContolr(Panel1,false);
    end;
      

  7.   

    procedure TForm1.enableContolr(Acontrl: TWinControl;flag : Boolean);
    var
    i : integer;
    begin
       for i := 0 to Acontrl.ControlCount-1 do
       begin
          if Acontrl.Controls[i] is TWinControl then
            ((Acontrl.Controls[i]) as TWinControl).Enabled := flag;
          if Acontrl.Controls[i] is TCustomControl then
           enableContolr( (Acontrl.Controls[i] as TCustomControl),flag)
       end;end;procedure TForm1.Button2Click(Sender: TObject);
    begin
       enableContolr(Panel1,false);
    end;
      

  8.   

    来晚了啊.....GARNETT2183(KingWolves (http://kevin-lu.blogspot.com)) 说的没错
      

  9.   

    function SetControlEnabled(Control :TWinControl; Enabled:boolean);
    var
      i:Integer;
    begin
      for i:=0 to Control.ControlCount-1 do
      begin
        Control.Controls[i].Enabled := Enabled;
        if Control.Controls[i] is TWinControl then
           SetControlEnabled(Control.Controls[i] as TWinControl; Enabled);
      end;老兄,这段代码可以吗??怎么我的不行啊,ControlCount这个值一直发生变化,不可确定呢.
      Control.Enabled := Enabled;
    end;SetControlEnabled(Panel1, False);