我想运行时动态生成一个按钮,但是老是提示出错,我是根据别人的示例做的,
var 
  button1:tbutton;button1.create(self);
错误提示self未定义。

解决方案 »

  1.   

    type
      TForm1 = class(TForm)
        Button1: TButton;
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
        procedure buttonClickEvent(sender:TObject);
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}
    procedure TForm1.buttonClickEvent(sender:TObject);
    begin
      showMessage('asdlfj;lasdkfj;asdlfjasl');
    end;procedure TForm1.Button1Click(Sender: TObject);
    var
      button:TButton;
    begin
      button:=TButton.Create(form1);
      button.Caption:='http://www.goomoo.net';
      button.Left:=20;
      button.Width:=300;
      button.Top:=20;
      button.OnClick:=buttonClickEvent;
      button.Parent:=form1;
    end;
      

  2.   

    我试了还是不行!!!!!!!
    示例中将button1放在var 中定义而goomoo是放在type中,到底应放在哪儿?
    我是在Form1中动态地生成Button1
      

  3.   

    那个type中的按钮是我放在窗体上的一个按钮。详细说明如下:type
      TForm1 = class(TForm)
        Button1: TButton;   //这个按钮是我放在窗体上的按钮,通过单击此按钮动态生成一个新的按钮
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
        procedure buttonClickEvent(sender:TObject);  //手动添加
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}
    procedure TForm1.buttonClickEvent(sender:TObject);    //手动添加函数的实现
    begin
      showMessage('asdlfj;lasdkfj;asdlfjasl');
    end;procedure TForm1.Button1Click(Sender: TObject);
    var
      button:TButton;  //这里动态生成一个按钮
    begin
      button:=TButton.Create(form1);
      button.Caption:='http://www.goomoo.net';
      button.Left:=20;
      button.Width:=300;
      button.Top:=20;
      button.OnClick:=buttonClickEvent;
      button.Parent:=form1;
    end;
      

  4.   

    问题很简单
    就是因为Parent属性没有设
    button.parent:=from1
    or
    button.parent:=panel