Einzelnen Beitrag anzeigen

fuchsle

Registriert seit: 22. Jul 2011
Ort: Heilbronn
35 Beiträge
 
Delphi XE3 Professional
 
#13

AW: Klasse von TTHread ableiten und Interface implementieren, Objekt erstellen

  Alt 8. Aug 2012, 10:02
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.
  Mit Zitat antworten Zitat