Einzelnen Beitrag anzeigen

Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.648 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Wie verwende ich Supports() richtig?

  Alt 26. Nov 2013, 12:08
Bei Delphi 5 sieht Supports ja so aus wie du ja sicher schon geschaut hast:
Delphi-Quellcode:
function Supports(const Instance: IUnknown; const Intf: TGUID; out Inst): Boolean;
begin
  Result := (Instance <> nil) and (Instance.QueryInterface(Intf, Inst) = 0);
end;

function Supports(Instance: TObject; const Intf: TGUID; out Inst): Boolean;
var
  Unk: IUnknown;
begin
  Result := (Instance <> nil) and Instance.GetInterface(IUnknown, Unk) and
    Supports(Unk, Intf, Inst);
end;
Sprich dein Objekt muss IUnknown implementieren. Das ist bei TComponent nicht der Fall.

Bei neueren Delphiversionen ist IUnknown nicht mehr erforderlich, da die entsprechende Funktionalität nun schon in IInterface drin ist.

So geht es, keine Ahnung ob anders besser:
Delphi-Quellcode:
TTest = Class(TComponent, IUnknown, ITest)

Supports(TObject(obj), ITest, intf)
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat