Delphi 的介面 3 關於介面的釋放

2021-06-19 20:39:12 字數 3468 閱讀 7982

**檔案:

unitunit1;

inte***ce

uses

windows, messages, sysutils, variants, classes, graphics, controls, forms,

dialogs, stdctrls;

type

tform1 =

class(tform)

button1: tbutton;

button2: tbutton;

button3: tbutton;

button4: tbutton;

procedurebutton1click(sender: tobject);

procedurebutton2click(sender: tobject);

procedurebutton3click(sender: tobject);

procedurebutton4click(sender: tobject);

end;

imyinte***ce =

inte***ce

procedureproc;

end;

tmyclass =

class(tinte***cedobject, imyinte***ce)

public

constructorcreate;

destructordestroy;

override;

procedureproc;

end;

var

form1: tform1;

implementation

constructortmyclass.create;

begin

inherited;

showmessage(

'tmyclass.create'

);

end;

destructortmyclass.destroy;

begin

showmessage(

'tmyclass.destroy'

);

inherited;

end;

proceduretmyclass.proc;

begin

showmessage(

'imyinte***ce.proc'

);

end;

proceduretform1.button1click(sender: tobject);

var

c: tmyclass;

begin

c := tmyclass.create;

c.proc;

c.free;

showmessage(

'**********'

);

end;

proceduretform1.button2click(sender: tobject);

var

i: imyinte***ce;

begin

i := tmyclass.create;

i.proc;

showmessage(

'**********'

);

//在本段程式的最後, 編譯器能判斷出介面不再有用, 會釋放掉擁有它的類

end;

proceduretform1.button3click(sender: tobject);

var

c: tmyclass;

i: imyinte***ce;

begin

c := tmyclass.create;

i := c;

//i := imyinte***ce(c); 

//i := c as imyinte***ce;

i.proc;

showmessage(

'**********'

);

end;

proceduretform1.button4click(sender: tobject);

var

i: imyinte***ce;

begin

i := tmyclass.create;

i.proc;

i :=

nil; //可以這樣主動釋放介面; 同時擁有它的類也會釋放

showmessage(

'**********'

);

end;

end.

Delphi程式設計介面的動態調整

如何設計美觀的程式一直是程式設計師的一大難題,很多程式設計師可以寫出很好的程式,但往往困於拙劣的外觀。其中如何使美觀的程式能在不同的環境下一樣美觀也同樣困擾著我們,我在一些程式的製作中掌握了一些使程式在不同環境同樣美觀的方法,希望給大家一點啟示。不同環境一般有不同的色彩數和不同的解析度等等,我只對這...

delphi中IDispath介面的實現類

delphi中idispath介面的實現類,由oleauto單元的tautoobject類進行了主要實現 實際是進行了乙個轉接實現tautoobject並沒繼承idispatch介面,而是裡面的乙個成員變數繼承了乙個idispatch介面 物件的 vmtautotable 68 位置儲存了auto表...

關於介面的問答

問題一 為乙個子系統定義介面,然後其它子系統通過介面來進行訪問該子系統。這時其它子系統就要 呼叫 該系統的介面 怎麼個呼叫法,通過實現介面中的方法?問題二 比如 後台維護子系統 它其中有很多 用例類 類是根據用例抽象來的 每個類都有 增 刪 改 查 這些 增 刪 改 查 可不可以抽象出來,抽象成介面...