如何动态调用控件 :例如 : 
    现有 TEdit : edt1,edt2,edt3,edt4,edt5
    有没有 类似 edtx.text 的调用方法。

解决方案 »

  1.   

    procedure findedtx(index : integer);
    var
      i : integer;
    being
      for i := 0 to ComponentCount-1 do
        begin
          if Component[i].Name = format('edt%d',[index]) then
            //DoSomeThing
        end;
    end;
      

  2.   

    创建控件数组就可以乐
    var  edits : array[0..12] of TEdit;
      i : integer;
    begin
      for i := 0 to 12 do 
      begin
        edits[i] := Tedit.create;
        edits[i].parent := form1;
        edits[i].top := 200* (i+1);
        edits[i].text := inttostr(i);   
      end;
    //随手写的你调试一下
      

  3.   

    以上两位的方法都可行的,也可以这样:
    function FindEdit(EditName:String):TEdit;
    begin
      Result:=(FindComponent(EditName) as TEdit);
    end;
    调用:
    var
      Edt:TEdit;//定义一个对象指针
    begin
      Edt:=FindEdit('Edt1');
      Edt.Text:='1212';
    end;