我想用循环给edit1-edit20赋值,但edit下标不知道怎么用循环变量i表示
 请各位大侠赐教

解决方案 »

  1.   

    edit:array[1..20] of tedit;
    ...
    for i:= 1 to 20 do
     edit[i].text:='';
      

  2.   

    edit:array[1..20] of Tedit 的声明在哪儿声明啊,我在form的控件变量里声明编译报错,
    在当前过程里声明运行时报错
      

  3.   

    procedure Tform1.button1Click(sender:TObject)
    var newedit:array[1..20] of TEdit;
    begin
      for i:= 1 to 20 do newedit[i].text:='';//抄袭 firetoucher(风焱) 老兄
    end;
      

  4.   

    如此就可以。procedure TForm1.Button1Click(Sender: TObject);
    var
      i: integer;
      edit:array[1..20] of tedit;
    begin
      for i:= 1 to 20 do
       edit[i].text:='';
    end;
      

  5.   

    procedure AssignEdits(aParentWinControl: TWinControl);
    var
      I: Integer;
      vEditNo: Integer;
      vEdit: TEdit;
    begin
      for I := 0 to aParentWinControl.ControlCount - 1 do
      begin
        if aParentWinControl.Controls[I] is TEdit then
        begin
          vEdit := TEdit(aParentWinControl.Controls[I]);
          vEditNo := StrToIntDef(Copy(vEdit.Name, 5, 2), 0);
          if vEditNo in [1..20] then
            TEdit(vEdit).Text := 'haha';
        end;
      end;
    end;
      

  6.   

    用我的方法吧,保证没错
    他们的方法必须动态创建TEdit,不适用我写了个函数,你可以直接用,如改变Form1上的Edit,就这样调用
    AssignEdits(Form1);
      

  7.   

    Delphi本身提供了函数来检测了!如下:
    (frmmain.findcomponet('checkbox' + inttostr(i)) as Tcheckbox).checked := true ;
    函数findComponent的参数是字符型的控件名,这样就可以操纵数组了!当然,楼上各位的方法也行,只是那样只能在运行时动态创建,如果在设计时创建的话就不好办了