Salut tout le monde,
je suis en train de faire des objets automation.
Je désire pouvoir transtyper une Interface en sa CoClasse associée (je ne suis pas sûr qu'on l'appelle la CoClasse en fait), mais il me met ce message d'erreur :
Les interfaces ne possèdent aucun champs, je les ai donc mis dans la classe associée pour pouvoir travailler avec. Lorsqu'une interface est passée en paramètre, je désire pouvoir la transtyper afin de récupérer les champs et travailler avec.Types incompatibles : 'TUser' et 'IUser'
Voici un bout de code pour que vous voyez ce que j'essaie de faire :
Ce n'est pas exactement le nom que je désire récupérer, j'ai fait un exemple plus simple pour que vous comprenniez sans avoir à tout expliquer. La solution dans ce cas étant de définir Nom dans IUser, mais le soucis n'est pas là. Je désire pouvoir transtyper IUser en TUser et il ne veut pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 TUser = class( TAutoObject, IUser ) private FNom : WideString; public function Traiter( aUser : IUser ) : WideString; safecall; function Nom : WideString; end; implementation function TUser.Traiter( aUser : IUser ) : WideString; begin Result := TUser( IUser ).Nom; end;
Merci pour votre aide.
Partager