是这个意思吗?
procedure TForm1.Button1Click(Sender: TObject);
 var
   b:Tbutton;
begin
   b:=Tbutton.Create(self);
   b.name:='java';
   b.parent:=form1;
   b.Caption:='2';
   b.top:=100;
   b.left:=100;
end;

解决方案 »

  1.   

    var
      dd : TDbedit;
      i : integer;
    begin
     for i:=1 to 10 do
     begin
      dd:=tdbedit.Create(self);
      dd.Name:='dbedit'+inttostr(i);  //以序号来命名控件 
      dd.Width:=170;
      dd.DataSource:=dm1.datasource1;
     end;
    end;
      

  2.   

    to:lizhenjia
    可以创建多个吗?
      

  3.   

    为了方便在程序中控制,动态创建的控件最好还是首先定义一个变量做标识,然后控制使用,象
    dd : TDbedit这样。如果创建数量比较多的话,也可用控件数组实现,like:
    ArrayDbedit : Array of TDBedit;
      

  4.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      compDy : TComponent;
    begin
      compDy := TEdit.Create(nil);
      (compDy as TEdit).Parent:=Form1;
    end;
    不太清楚你的意思,你可以定义一个Tcomponent的变量,如上;
    你也可以:
       TEdit.Create(nil).parent := Form1;
    但这样再操作该组件时,只能用FindComponet查找后再操作!
      

  5.   

     createbutton(yournum);
     var
      yourbutton:array of tbutton;
      i:integer;
     beging
      setlength(yourbutton,yournum);
      for i:=1 to yournum do
      begin
      yourbutton[i]:=tbutton.create(self);
      yourbutton.parent:=yourform;
     .....
      end;
    end;