我想动态添加一个控件,怎么办?
就是比如,如果点击窗体,就自动添加一个button.再点的话再加一个。

解决方案 »

  1.   

    procedure buttononclick(sender:Tobject)
    var button:TBUtton;
    begin
       button:=Tbutton.create(self);
       button.caption:=datetostr(now);
       button.parent:=self;
       button.top:=100;
    end;
      

  2.   

    只要你指定top大小后就可以了
      

  3.   

    var button:TBUtton;
    就这样说明就可以了吗?
      

  4.   

    procedure TForm1.FormClick(Sender: TObject);
    var
      btn:tbutton;
    begin
      btn:=tbutton.Create(self);
      btn.Parent:=form1;
      btn.Visible:=true;
    end;
      

  5.   

    怎么区别这些button?如果再做这些BUTTON的事件怎么办?
      

  6.   

    var button:TBUtton;
    begin
       button:=Tbutton.create(self);
       button.caption:=datetostr(now);
       button.parent:=self;
       button.top:=100;
       button.name:='';
       button.onclick:='你要的事件';//可以给button名称,来区别每个名称的事件
    //事件里可以用名称来判断执行
    end;
      

  7.   

    button名字中可不可以有变量,这样我就可以区分不同的button了?
    谢谢你,怎么用赠分啊,送你一点,我设的分值太少了
      

  8.   

    --整个实例:
    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;type
      TForm1 = class(TForm)
        Button1: TButton;
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
      public
        procedure buttonClick(sender:TObject);
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
    var button:TButton;
    begin
       button:=Tbutton.create(self);
       button.Parent:=self;
       button.Caption:=datetostr(now);
       button.OnClick:=buttonClick;
    end;procedure TForm1.buttonClick(sender:TObject);
    begin
        //按钮名称这样取:
        showmessage(TButton(sender).Caption);
        if TButton(sender).Name='buttonname' then
            begin
                //执行你要的代码!
            end;
    end;