Einzelnen Beitrag anzeigen

Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#3

AW: Schnittstelle ohne COM-Eigenschaft

  Alt 26. Aug 2013, 16:22
Leider geht das nicht so einfach und reibungslos wie bei C#
Interfaces unter Delphi müssen immer von IUnknown oder IInterface (was das Gleiche ist) abgeleitet werden.
Damit du die Methoden von IUnknown nicht selbst implementieren musst, kannst du von der Klasse TInterfacedObject ableiten.

Wenn man einen Interfacezeiger hat ist es auch nur mit Klimmzügen möglich wieder an das eigentliche Klassenobjekt zu kommen.
Das bedeutet man kann ein Objekt, dass über ein Interface referenziert wird nicht einfach mit Free freigeben weil man über das Interface gar nicht an die Free-Methode herankommt.
Daraus folgt, dass man immer die Referenzzählung von IUnknown benutzen sollte (auch wenn man die Referenzzählung aushebeln kann und sie dabei aber weitere Schwierigkeiten einhandelt)
fork me on Github
  Mit Zitat antworten Zitat