由于数据的分类,我用了两个面板控件来分别表示不同类的数据,每一面板上有多个EDIT控件,如何用代码使他们一个面板上的可修改,一面板上的不可修改。不要说是一个个修改READONLY属性。

解决方案 »

  1.   

    用控件数组吧
    循环实现或者把面板enable := false
      

  2.   

    http://community.csdn.net/Expert/topic/3219/3219981.xml?temp=.6854364
      

  3.   

    把它们都放到一个groupbox中去,设置groupbox的enable属性
      

  4.   

    把不可修改的edit的父级控件面板的enable设成false不就行了
      

  5.   

    for i :=0 to self.ComponentCount-1 do
        begin
          if(self.Components[i] is TFlatEdit) then
            begin
              (self.Components[i] as TFlatEdit).ReadOnly :=Flag;
            end;
        end;
    为什么Form 的Components可以这样,面板的Components就不行呢?
      

  6.   

    那样的话,用户想把焦点放在某个EDIT上都不行呀,效果不好呀
      

  7.   

    都不让改了,还要什么焦点你可以用颜色来区分可修改
    比如可以的时候让edit所在panel的字体为蓝色
    不可修改的时候是黑色..效果不觉得不好
      

  8.   

    可以用componentcount属性
    var
      I: Integer;
    begin
      for I := 0 to ComponentCount - 1 do
      begin
        if Components[I] is TEdit then
          (Components[I] as TEdit).ReadOnly := true;
      end;
    end;
      

  9.   

    agree with : jinjazz(三个小时上下班) ( ) 信誉:103 
    都不让改了,还要什么焦点你可以用颜色来区分可修改
    比如可以的时候让edit所在panel的字体为蓝色
    不可修改的时候是黑色..效果不觉得不好