procedure TForm1.SetEnable(Enable: Boolean);
var
  i:Integer;
begin
  for i:=0 to Self.ComponentCount-1 do
  begin
    if Self.Components[i] is TEdit then
      (Self.Components[i] as TEdit).Enabled := Enable;
  end;
end;请问上面的 self.components[i] 是什么意思,不是数组也能这样用吗.

解决方案 »

  1.   

    Self是实例本身,Components是TForm的成员,它本身可以理解为一个动态数组,拥有TForm的所有从TComponent继承的组件。self.components[i]获取的就是TForm中指定第i个TComponent组件的地址。
      

  2.   

     for i:=0 to Self.ComponentCount-1 do 
    是循环self窗体(可以是其它容器)上的每一个控件。
     Self.Components[i]是第I个索引号的控件。
    if Self.Components[i] is TEdit then
    是判断索引号为I的控件如果是TEdit then.......
      

  3.   

    self.components[i]表示当前组件包含的组件列表中的某个组件
      

  4.   


    Components 就是一個數組啊。在當前的FORM下繼承自 TComponent  的組件都會進到這個數組中。