太莫名其妙了,近來被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;
新聞熱點
疑難解答
圖片精選