procedure EnableControls(AParent: TWinControl; const AEnabled: Boolean);
var
  i: Integer;
  AWinControl: TWinControl;
begin
  with AParent do
    for i := 0 to ControlCount - 1 do begin
     // Set enabled property
      Controls[i].Enabled := AEnabled;
      // Set all his children's property of enable
      if Controls[i] is TWinControl then begin
        AWinControl := TWinControl(Controls[i]);
        if AWinControl.ControlCount > 0 then
          EnableControls(AWinControl, AEnabled);
      end
    end
end;

解决方案 »

  1.   

    遍历TWinControl的属性Controls数组,并对每一个元素加以处理。
      

  2.   

    to chechy(我爱洁洁) (  ) 信誉:130 
    英雄,你现在做的就是我不希望的。我的意图就是靠容器发一条消息,让容器内的控件收到消息后自己失效调。
    是不是异想天开,你再想想看,就指望你了
      

  3.   

    能做好已经很不错了,还要挑三拣四?
    你试试BoardCast方法。
      

  4.   

    mudjack(程序也疯狂) 作的很好实现,就是不使用GroupBox,自己写一个控件来做这件事.     ____     ____
         \ p \   / g /
          \ l \_/ n /
           \ a   o /
            \ i s /
             \ n /
              \_/