Bonsoir à tous,
j'essaie de caster une référence d'objet en une instance de mon interface en me servant du mot réservé "as", mais cela ne fonctionne pas...
J'ai un code qui ressemble à ça:
Maintenant, j'ai un TObjectList qui stocke des TMyClasseAbstraite1 et TMyClasseAbstraite2. Leur seul tronc commun est IMyInterface. Et lorsque j'écris le code suivant:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 IMyInterface=interface // plein de méthodes à implémenter end; TMyClasseAbstraite1=class(TInferfacedObject, IMyInterface) // méthodes abstraites principalement end; TMyClasseAbstraite2=class(TInferfacedObject, IMyInterface);
je me prend un erreur à la compil'! idem avec un cast direct "IMyInterface(MyReference)"....
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 with MonTObjectList[0] as IMyInterface do ...
"As" ne fonctionnant pas avec les type interface, que utiliser d'autre ? Et surtout, pourquoi delphi ne permet pas cela (en java c'est tout à fait légal par exemple) ?
en gros, comment savoir si une référence d'objet est d'un type implémentant une interface, et comment récupérer une référence de ce type......
Merci
Partager