Bonjour,
j'ai une fonction qui liste toutes les propriétés d'un objet.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| Procedure QueryPropertyOf(AObj: TObject);
Var
vCtx: TRttiContext; // contexte rtti
vType: TRttiType; // rtti de l'objet
vProp: TRttiProperty; // rtti de la propriété
Begin
vCtx := TRttiContext.Create;
Try
vType := vCtx.GetType(AObj.ClassType);
For vProp In vType.GetProperties Do
Begin
//recuperation du vProp pour le passer à la fonction.
End;
Finally
vCtx.Free;
End; |
Je voudrais ensuite pour chaque objet le passer en paramètre à une fonction qui a pour paramètre un Generics (<T>)
function TJsonSchema.AddField<T>(const pName: string; const pDescription: string = ''): TJsonField;
ici les parametres peuvent être des classes ou des elements simples comme des strings ou des integer.
Quelqu'un sait comment je pourrai passer du TRttiProperty vers <T>
Ca doit être tout bête mais je ne suis pas encore super à l'aise avec les RTTI.
Merci de votre aide.
Partager