怎么动态生成一个控件呀,比如说我要运行的时候单击
一个按钮从而生成另外一个按钮,

解决方案 »

  1.   

    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
      StdCtrls;type
      TForm1 = class(TForm)
        Button1: TButton;
        procedure FormMouseDown(Sender: TObject; Button: TMouseButton;
          Shift: TShiftState; X, Y: Integer);
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
        procedure Myclick(Sender:TObject);
      end;var
      Form1: TForm1;implementation{$R *.DFM}procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    var
      b:tbutton;
    begin
       b:=tbutton.create(form1);
       b.Parent:=form1;
       b.Caption:='123';
       b.onClick:=form1.myclick;
    end;procedure TForm1.MyClick(Sender: TObject);
    begin
      showmessage('ok');
      application.Terminate;
    end;太多这样的问题了,请你多搜索一下再问吧。
      

  2.   

    OnButton1Clickvar 
     btn :TButton;
    begin
     btn := TButton.Create(self);
     btn.parent := Button1.Parent;
     btn.Top:=?
     btn.Left:=?
     btn.Width:=?
     btn.Height:=?
    end
      

  3.   

    我也这样做了呀,可是出错
    是不是我想生成一个控件(如ADDOQuery)的时候,窗体上必须先有一个这样的控件呢
      

  4.   

    OnButton1Clickvar 
     btn :TButton;
    begin
     btn := TButton.Create(self);
     btn.parent := Button1.Parent;
     btn.Top:=?
     btn.Left:=?
     btn.Width:=?
     btn.Height:=?
    end
    var 
     btn :TButton;不要做局部变量呀,定义在这里var 
     form1:Tform;
     btn:Tbutton;
      

  5.   

    不用,想生成什么
    var 
     btn :TButton;//就在这里写出来比如 test:Tedit ....
    begin
     btn := TButton.Create(self);
     btn.parent := Button1.Parent;
     ......