Einzelnen Beitrag anzeigen

xaromz

Registriert seit: 18. Mär 2005
1.682 Beiträge
 
Delphi 2006 Enterprise
 
#2

Re: IInterface und TInterfaced Object richtig nutzen

  Alt 22. Aug 2006, 10:47
Hallo,

Du musst Deinen Interfaces eine GUID übergeben (mit Strg+Shift+G erstellen). Damit kannst Du Deine Interfaces eindeutig identifizieren:
Delphi-Quellcode:
type
  IElem = interface(IInterface)
  ['{8D4708F4-026A-4CE6-B8EB-5CC20D1FF32A}'] // <- Beispiel-GUID
    function Equals(const e: IInterface): Boolean; // <- Interfaces *IMMER* als const übergeben, spart Referenzzählung
  end;

  TElemStr = class(TInterfacedObject, IElem)
  private
    Content: string;
  public
    function Equals(const e: IInterface): Boolean;
  end;

implementation

uses
  SysUtils;

const
  // Für Vergleich deklarieren
  IID_ELEM: TGUID = '{8D4708F4-026A-4CE6-B8EB-5CC20D1FF32A}';

function TElemStr.Equals(const e: IInterface): Boolean;
begin
  Result := Supports(e, IID_ELEM); // implementiert "e" ein IElem?
end;
Gruß
xaromz
I am a leaf on the wind - watch how I soar
  Mit Zitat antworten Zitat