var pbtn: TButton;begin
pbtn:=tbutton.create(self);//这句编译不通过这样就可以了,其实你的代码应该在delphi6中能通过的,因为delphi6处理了双重指针。

解决方案 »

  1.   

    不行,就是在DELPHI6中也不行的。老兄你没声明成指针呀。即:VAR PBTN:^TBUTTON你少了一个"^",所以能通过
      

  2.   

    其实TButton就是一个指针
    不信,你用一下SizeOf 结果为4
    你也可以这样理解 再Delphi中 "."相当于C++中的"."和"->"
      

  3.   

    其实TButton就是一个指针
    不信,你用一下SizeOf 结果为4
    你也可以这样理解 再Delphi中 "."相当于C++中的"."和"->"
      

  4.   

    那为什么不能把指针类型赋上去呢?即
    var pbtn: ^TButton;begin
    pbtn:=tbutton.create(self);//这句编译不通过为什么不行呢?
      

  5.   

    因为Create后类型并不匹配,将第一句的^去掉,我保你能编译通过。
      

  6.   

    那么DELPHI中的.应该没有C++中的->效率高喽?
      

  7.   

    var pbtn : ^Tbutton;
    begin
      New(pbtn);  
      pbtn^ := button1;//已经存在的可以;
      pbtn^.caption := 'ok'
      ........