我在程序中用了20个EDIT控件使用默认标识符,想使其中的EDIT5至EDIT19的ENABEL属性
为FALSE,请问有没有办法用FOR循环实现,那样我的程序就简单多了。非常感谢。

解决方案 »

  1.   

    将Edit5-edit9的tag置为5-9(分别设置5,6,。。9),其他所有控件的tag均为0
    用下面循环就可以了:
    for i:=0 to componentcount-1 do
    begin
     if components[i].tag > 0 then
       Tedit(components[i]).Enabled:=false;
    end;
      

  2.   

    var tmp:TEdit;i:integer;
    begin
      For i:=5 to 9 do
      begin
        tmp:=Form1.FindChildControl(Format('Edit%d',[i])) as TEdit;
        If Assigned(tmp) then tmp.Enabled:=false;
      end;
    end;我这样写就没有必要设置Tag属性。不过前提是Edit的Name的格式为“Edit”跟一个数字。而且Edit的Parent为Form1.如果是在Panel或其他容器中,那么你必须要修改我的代码中的 Form1