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