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 :
Types incompatibles : 'TUser' et 'IUser'
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.

Voici un bout de code pour que vous voyez ce que j'essaie de faire :
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;
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.

Merci pour votre aide.