Pour les énumérations normales que je peux faire une boucle à travers et obtenir tous les noms:Type Itérer throught enum avec constante assignée et obtenir son nom
type
TMyEnum = (apple, pear, plum);
procedure TForm2.FormCreate(Sender: TObject);
var
i: TMyEnum;
s: String;
begin
s:= '';
for I := Low(TMyEnum) to High(TMyEnum) do
begin
s := s + TRttiEnumerationType.GetName<TMyEnum>(i) + sLineBreak;
end;
ShowMessage(s);
end;
Mais, pour:
TMyEnum = (apple=5, pear=20, plum=70);
- Comment itérer à travers cela?
- Comment obtenir les noms via RTTI?
oui, sans constantes assignée il est ok, mais avec une constante, il soulever erreur [Erreur dcc32] Unit2.pas (41): Type E2134 « TMyEnum » n'a pas d'info type – Livius
Limitation connue: les déclarations enum avec des constantes n'obtiennent pas de RTTI. Probablement préférable d'utiliser un tableau de conversion ici: –