请问怎样动态的生成EDIT输入框(如通过一个edit中的数字)?并获取这些EDIT输入框中的文本呢?

解决方案 »

  1.   

    e:TEdit;e:=TEdit.create(self)
    e.parent:=form1;
    e.top:=..
    e.left:=...
    设置属性(省略)e.text是获得输入框中的文本
      

  2.   

    简单............首先申明一个TEdit类型的变量,如下
    Var
      MyEdit:TEdit;
    然后动态生成,如下
      ....
      MyEdit:=TEdit.Create(Self);  //Self表示这个Edit放在哪个窗体上
      MyEdit.Parent:=Self;  //必须加这句,否则看不到
      ....
    然后获取文本,如下
      ....
      EdtStr:=MyEdit.Text;  //事先申明字串变量EdtStr
      ....
      

  3.   

    如果我是要通过EDIT输入的数字比如:10 来动态生成10个EDIT,并获得它的TEXT哪怎么写呢?
      

  4.   

    var
      EditArray: array of TEdit;procedure DestroyEdits;
    var
      I: Integer;
    begin
      for I := 0 to Length(EditArray) - 1 do
        EditArray[I].Free;
      EditArray := nil;
    end;procedure CreateEdits(aParent: TWinControl; aNum: Integer);
    var
      I: Integer;
    begin
      DestroyEdits;
      SetLength(EditArray, aNum);
      for I := 0 to aNum - 1 do
      begin
        EditArray[I] := TEdit.Create(aParent);
        with EditArray[I] do
        begin
          Top := 25 * I + 5;
          Parent := aParent;
        end;
      end;
    end;
      

  5.   

    for i:=1 to 10 do
    begin
      with TEdit.create(nil) do
      begin
        parent:=form1;
        left:=10;
        top:=i*20;
        name:='myedit'+inttostr(i);
        text:='myedit'+inttostr(i);
        tag:=i;
      end;
    end;
    //获得text
    for i := 1 to 10 do begin
        with TEdit(FindComponent('myedit' + IntToStr(i))) do
        begin
          showmessage(text);
        end;
      end;
      

  6.   

    MyEdit:=TEdit.Create(Self);  
     MyEdit.Parent:=Form1;
      

  7.   

    因为你的另一个窗口是自动创建了,你需在Project=>Project Options 中选择Forms 属性页面中,把其不想自动创建的窗口从(Auto_Create forms => Available forms)即可,当然主窗体必须留在Auto_Create forms 中