Pour l'instant je donne un essai à delphi2010 et trouvé le type TValue de l'unité Rtti. TValue a des fonctionnalités très interessantes, mais je n'arrive pas à trouver un moyen d'assigner une interface.Comment puis-je affecter une variable d'interface à une variable de type Rtti.TValue
J'essaie les suivantes
program Project1;
uses
Classes, SysUtils, Rtti;
var
list : IInterfaceList;
value : TValue;
begin
// all these assignments works
value := 1;
value := 'Hello';
value := TObject.Create;
// but nothing of these assignments works
list := TInterfaceList.Create;
value := list; // [DCC Fehler] Project1.dpr(15): E2010 incompatible types: 'TValue' and 'IInterfaceList'
value.From[list]; // [DCC Fehler] Project1.dpr(16): E2531 Method 'From' requires explicit typarguments
value.From<IInterfaceList>[list]; // [DCC Fehler] Project1.dpr(17): E2035 Not enough parameters
end.
Je ne peux pas trouver de plus amples informations. Pas dans le système d'aide Delphi et pas sur Internet. Qu'est-ce que je fais de mal?
Il est intéressant de souligner que pour de simples listes d'arguments bien typés comme celui-ci, l'inférence de type devrait fonctionner correctement, et 'TValue.From (list)' devrait suffire. –
Merci Mason et Barry, j'ai essayé pendant 2 heures pour trouver une solution. Il est difficile de réaliser que Codeinsight se moquait de moi. –