naugondo
Messages postés4Date d'inscriptiondimanche 24 novembre 2002StatutMembreDernière intervention14 avril 2006
-
14 avril 2006 à 10:37
cs_shining
Messages postés304Date d'inscriptionlundi 30 décembre 2002StatutMembreDernière intervention10 mars 2012
-
14 avril 2006 à 12:17
Bonjour !!
J'aimerais créer un nouveau composant qui implementrai une interface ISujet
Voici mon code :
type
TClignotementTimer = class (TComponent,TInterfacedObject,ISujet)
code ...
end;
Le déboggeur Delphi m'envoie le messege suivant : "Type Interface nécessaire"
cs_shining
Messages postés304Date d'inscriptionlundi 30 décembre 2002StatutMembreDernière intervention10 mars 2012 14 avril 2006 à 12:17
nop ta déclaration est fausse !!!
bon je ne guarantie rien néanmoins il me semble plus logique de faire hérité ton Interface TGraph d'une Interface de type 'TInterfacedComponent'
comme ceci
TInterfacedComponent = class(TComponent , IInterface)
protected
FRefCount: Integer;
function QueryInterface(const IID: TGUID; out Obj): HResult; stdcall;
function _AddRef: Integer; stdcall;
function _Release: Integer; stdcall;
public
procedure AfterConstruction; override;
procedure BeforeDestruction; override;
class function NewInstance: TObject; override;
property RefCount: Integer read FRefCount;
end;
TGraph = class (TInterfacedComponent ,IDraw)<=== là c'est ok tu hérite d'une Interface de type TComponent
public
procedure Draw(Canvas:TCanvas);virtual;abstract;
Destructor Destroy;override;
end;
par contre va falloir prendre en charge l'implémentation de
_AddRef;_Release; ect...
en gros AddRef et Release fixe la durée de vie de ton Objet !!!