在程序中使用TButton的实例Btn
只要在implementation处声明
Var  Btn:TButton;不就行了,怎么会出错?

解决方案 »

  1.   

    声明后
    还没有分配相应的地址空间
    必须实例化
    要注意的是
    动态创建的必须释放
    格式是
    Btn:=Tbutton.create(owner);
    try
      dosomething;
    finally
      free;
    end;
      

  2.   

    implementation{$R *.dfm}
    procedure TForm1.FormMouseDown(Sender:TObject;
      Button:TMouseButton;Shift:TShiftState;X,Y:Integer);
    var
      Btn:TButton;
    begin
      Btn:=TButton.Create(Self);
      Btn.Parent:=Self;
      Btn.Left:=X;
      Btn.Top:=Y;
      Btn.Width:=Btn.Width+50;
      Btn.Caption:=Format('Button at %d,%d',[X,Y]);
    end;
    书上的例子
    请教!
      

  3.   

    声明后并没有分配相应的空间给对象
    Delphi不同VC/C++所有对象都必须动态分配的Form一般式自动分配的,在DPR中有Application.,CreateForm实现的
      

  4.   

    你大概是使用Btn前,Btn还没有构造吧
      

  5.   

    Btn:=TButton.Create(Self);不就构造了吗?
    [Error] sd.pas(29): Undeclared identifier: 'TButton'
      

  6.   

    完全同意Btn:=TButton.Create(Self);后和正常拖拽的控件就没什么区别了
      

  7.   

    那Undeclared identifier: 'TButton'
    是怎么回事?
      

  8.   

    是在默认单元里声明的吗?是不是没有加定义TButton的系统单元那。
      

  9.   

    如果没有uses相应定义的单元,就会有出错提示,还有是Create(self),有时候self参数也会出错,可以用create(nil)也可以!