在窗体上已有9个edit 如     
  股东姓名         出资额        出资比例
   edit1            edit2         edit3 
   合计             edit4         edit5
现在我想按动添加按钮生成如下所示
 股东姓名         出资额        出资比例
   edit1            edit2         edit3 
   edit6            edit7         edit8
   合计             edit4         edit5
再添加又在edit6 下面动态添加一行 同时合计一行向下移动一行。
按消除则edit6 一行消失,再按消除edit1 一行消除,依此类推。
问如何添加,消除。

解决方案 »

  1.   

    给你一个函数,自己去写:FindComponent(name:string),通过name得到控件,用的时候这样用:TEdit(FindComponent(nam))
      

  2.   

    简单
    t:array of TEdit;
    ...................
    setlength(t,3);
    for i:=0 to high(t) do
    begin
        t[i]:=TEdit.create(self);
        t[i].left:=...;
        t[i].top:=...;
    end;
    以此类推
      

  3.   

    不用动态创建,全部创建之后控制Edit的Visible和位置属性.
      

  4.   

    先在前面定义一个edit(protected System.Web.UI.WebControls.TextBox TextBox;
    然后在this.AddedControl(TextBox);
    你自己改成delphi好了
      

  5.   

    tigerhohoo(老虎不吃人) 
    应该动态创建的,安他说的意思他不知道要创建几行
      

  6.   

    var
      Edits:array[0.100] of array[0..2] of TEdit;
      Line:Integer=0;procedure TForm1.ButtonAddClick(Sender:TObject);
    begin
      Edits[Line,0]:=TEdit.Create(Self);
      with Edits[Line,0] do
      begin
        Parent:=Self;
        SetBounds(left,top,width,height);//位置你自己算
        Show;
      end;
      Edits[Line,1]:=TEdit.Create(Self);
      with Edits[Line,1] do
      begin
        Parent:=Self;
        SetBounds(left,top,width,height);//位置你自己算
        Show;
      end;
      Edits[Line,2]:=TEdit.Create(Self);
      with Edits[Line,2] do
      begin
        Parent:=Self;
        SetBounds(left,top,width,height);//位置你自己算
        Show;
      end;
      Inc(Line);
      //再把下面的向下移
    end;procedure TForm1.ButtonDeleteClick(Sender:TObject);
    begin
      Edits[Line-1,0].Free;
      Edits[Line-1,1].Free;
      Edits[Line-1,2].Free;
      //再把下面的向上移
    end;
      

  7.   

    对是要用动态创建,bluenightsky和Alanwn(天痴) 能在说的详细点吗
      

  8.   

    花,谢谢!,意图我理解了
    每行变动的就是top
    SetBounds(left,top+(line+1)*20,width,height);
    程序好像还差点什么,我只能添加一行,再按无反映,差那呢
      

  9.   

    把同一行的edit等放在一个panel上,不让panel显示边框。不显示中间的edit时,把中间的panel设为不可见,上下的panel调整top属性(上面的top增大,下面的top减小);显示时反之。