我公司现在要做一个系统,里面要用到动态生成Edit,Lable,在一个panel上生成两列DBEdit和Lable用来数据输入,假设在这个PANEL上一列最多只能容下四行DBEDIT和LABLE,现在要在这个PANEL上生成两列,怎样来去实现呢?有没有哪位朋友做过这方面的实例不妨说出来跟大家分享一下.

解决方案 »

  1.   

    设置DBEdit和Label的Left和Top属性不就行了吗?
      

  2.   

    我知道是用类来生成,不过就是不知道怎样生成在PANEL上,还有要通过PANEL上的坐标循环来切换到下一列,但是由于本人基础不牢实在是无从下手,
      

  3.   

    var
         olist:TObjectList;
         i:integer;
      begin
        olist :=TObjectList.Create(Self);
        try
          for i:= 0 to 1 do
          begin
            olist.addobject(TDBEDIT.Create(Self));
            TdbEdit(olist.objects[olist.count - 1]).parent := Panel1;
            TdbEdit(olist.objects[olist.count - 1]).update;
            TdbEdit(olist.objects[olist.count - 1]).left :=  20 + i*20;
            TdbEdit(olist.objects[olist.count - 1]).top:= 20 ;
          end;
          Panel1.update;
        except
          freeAndNil(olist);
        end;
      end;
      

  4.   

    动态生成的控件一定要有parent 属性,然后在给定控件的大不的位置。