当前位置:主页>Delphi教程>文章内容
对Delphi接口的又一疑惑:怎么会自动释构的?
来源: 作者: 发布时间:2007-04-29  
 

太莫名其妙了,近来被Delphi的接口气死了,请看以下代码(注意黑体及红色):

type
  IInterface1 = interface
  end;


  TClass1 = class(TInterfacedObject, IInterface1)
    destructor destroy; override;
  end;

  TForm1 = class(TForm)
    Button1: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
    class1: IInterface1;     //注意这里是接口IInterface1 ,不是类TClass1 ,TClass1 是没有这个问题出现的
  public
    { Public declarations }
  end;

implementation
{$R *.dfm}

{ TClass1 }
destructor TClass1.destroy;
begin
  ShowMessage('Destroy!');
  inherited;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  class1 := TClass1.Create;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  class1 := nil;  //就是这里,他会自动跳到destroy那里释构。
                         //如果class1是类TClass1,则不会跳到destroy那里去。
                         //为什么?为什么?
end;


 
上一篇:delphi多线程程序示例(与.net一样简单)   下一篇:看一小会儿COM所做笔记
 
  相关文章
·delphi多线程程序示例(与.net一样简单)
·看一小会儿COM所做笔记
·Delphi中的DLL封装和调用对象编写碰到
·创建Photoshop式浮动窗口应用程序
·2个不错的通配符比较函数
·比较VC和Delphi的WinTest工程
·如何从MySQL数据库表中检索数据
·DELPHI中的快捷方式一览(完全正式版)
·[PB+Delphi]主应用程序用的是PB,操作
·在winnt以上版本中对打印机纸张的动态
·Delphi中正常窗口的实现
·如何在DBGRID或者STRINGGRID中实现用滚
 
【关闭窗口】
推荐本站资源
最新文章