Da das IInterfaceMein implizit von IInterface abgeleitet ist, gehören dazu natürlich auch Implementierungen der dort deklarierten Methoden - insbesondere QueryInterface! Da der Compiler schon viel eher meckern würde, wenn diese Methoden nicht in deiner TThread-Ableitung enthalten wären, denke ich daß du die auch tatsächlich implementiert hast.
Wenn du jetzt dem Compiler sagst, daß dein TThread-Abkömmling das IInterface tatsächlich implementiert, sollte es auch gehen:
TMeineKlasse = Class(TThread, IInterface, IInterfaceMein)
Hallo,
ich bin über diesen Beitrag gestoßen, da ich ein Interface in einem Thread nutzen möchte.
Dazu habe ich versucht das oben zitierte umzusetzen.
Wie folgt sieht mein Beispiel aus:
Delphi-Quellcode:
unit Unit2;
interface
uses
Classes;
type
IMyInterface =
Interface(IInterface)
procedure setstate;
function getstate(): Boolean;
property State: Boolean
read getstate
write setstate;
End;
TMyThread =
class(TThread, IInterface, IMyInterface)
private
{ Private-Deklarationen }
protected
procedure Execute;
override;
end;
implementation
Jedoch kommt es zu folgenden Meldungen:
[DCC Fehler] Unit2.pas(15): E2003 Undeklarierter Bezeichner: 'QueryInterface'
[DCC Fehler] Unit2.pas(15): E2003 Undeklarierter Bezeichner: '_AddRef'
[DCC Fehler] Unit2.pas(15): E2003 Undeklarierter Bezeichner: '_Release'
Muss ich diese Methoden doch selbst implementieren?
Bin davon ausgegangen, dass diese vererbt werden.
Vielen Dank.