Bonjour,
J'aimerai savoir comment récupérer la liste des "propriétés" d'un objet comme le fait l'explorateur d'objets dans l'EDI.
Merci
Bonjour,
J'aimerai savoir comment récupérer la liste des "propriétés" d'un objet comme le fait l'explorateur d'objets dans l'EDI.
Merci
Avec les RTTI (unité typinfo)
les property en published ...
lit ce sujet
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35 class function TEpcRTTIWrapper.GetPersistentProperties(AClass: TClass; List: TStrings; PersistentOnly: Boolean = True): Boolean; var I, Count: Integer; PropInfo: PPropInfo; PropList: PPropList; begin Result := Assigned(List) and (not PersistentOnly or (PersistentOnly and AClass.InheritsFrom(TPersistent))); if Result then begin List.Clear(); // Obtention du Nombre de Propriété de l'Instance Count := GetTypeData(AClass.ClassInfo)^.PropCount; Result := Count > 0; if Result then begin // Allocation de la mémoire pour la Liste des Propriétés de l'Instance GetMem(PropList, Count * SizeOf(Pointer)); try // Récupération du Tableur de Pointeur décrivant les Propriétés de l'Instance GetPropInfos(AClass.ClassInfo, PropList); for I := 0 to Count - 1 do begin // Récupération du Ieme Element décrivant l'une des Propriétés de l'Instance PropInfo := PropList^[I]; // Ajout du Nom de l'une des Propriétés de l'Instance if Assigned(PropInfo) then List.Add(PropInfo^.Name); end; finally // Libération de la mémoire pour la Liste des Propriétés de l'Instance FreeMem(PropList, Count * SizeOf(Pointer)); end; end; end; end;
A voir également ce tuto de Laurent Dardenne:
Introduction aux RTTI sous Delphi.
@+
merci, je vais voir tout cela et si j'ai toujours un point d'interrogation je vous le ferai savoir. Sinon je mettrai le flag "Résolu".
Partager