Einzelnen Beitrag anzeigen

CarlAshnikov

Registriert seit: 18. Feb 2011
Ort: Erfurt
108 Beiträge
 
Delphi XE5 Enterprise
 
#1

Wie verwende ich Supports() richtig?

  Alt 26. Nov 2013, 11:22
Delphi-Version: 5
Hallo,

ich möchte herausfinden ob mein Objekt ein bestimmtes Interface unterstützt. Ich habe schon diverse Threads hier gelesen und verschiedene Tutorials aber ich sehe den Fehler nicht. Folgendes Minimalbeispiel klappt schon nicht:

Delphi-Quellcode:
type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
  end;

  ITest = Interface
  ['{0EA740D1-F9E6-42CB-9757-68AE8AFCF086}']
  end;

  TTest = Class(TComponent, ITest)
  end;
  
var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);
var
  obj: TTest;
  intf: ITest;
  isSupported: Boolean;
begin
  obj := TTest.create(nil);
  isSupported := Supports(obj, ITest, intf);
  assert(isSupported);
end;
Nehme ich TInterfacedObject gibt es mehrere mögliche Überladungen. Auch mit TObject und eigener Implementierung von Release, AddRef und QueryInterface bekomme ich nie true raus. Kann mich bitte jemand in die richtige Richtung schubsen?
Sebastian
  Mit Zitat antworten Zitat