我觉得BT:=TBUTTON1。CREATE(FORM1);应该改为
bt:=TBUTTON。CREATE(self);
另外,名字应该是不同的

解决方案 »

  1.   

    procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    VAR
    BT:TBUTTON;
    BEGIN
    BT:=TBUTTON.CREATE(self);
    BT.NAME:='BT'+INTTOSTR(X)+'TO'+INTTOSTR(Y);
    BT.PARENT:=FORM1;
    BT.CAPTION:='BT'+INTTOSTR(X)+'TO'+INTTOSTR(Y);
    bt.top:=Y;
    bt.Left:=x;
    BT.WIDTH:=100;
    end;
      

  2.   

    因该可以创建多个只不过你没有设置left,top 
    所以他们都重叠在一起了,你只看见一个,哈哈
      

  3.   

    var
      Form1 : TForm1;
      I : Integer;procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    VAR
    BT:TBUTTON;
    BEGIN
    BT:=TBUTTON.CREATE(self);
    BT.NAME:='BT'+IntToStr(I);//这样的话,BT.Name 永远不会重复的;
    Inc(I);
    BT.PARENT:=Self;
    BT.CAPTION:='BT'+INTTOSTR(X)+'TO'+INTTOSTR(Y);
    bt.top:=Y;//这儿不可能少的!
    bt.Left:=x;//这儿也不能少的;
    BT.WIDTH:=100;//这可有可无,它有默认值的;
    end;