Bekanntes Problem: Ich habe eine Enumeration, will aber zur Laufzeit vielleicht mit dem Namen arbeiten. Hier die Auflösung:
Delphi-Quellcode:
uses Typinfo;
function GetEnumNames: TStringList;
var
si : SmallInt;
str : String;
begin
result := TStringList.Create;
with result do
begin
Clear;
for si := ord( low( TEnumeration ) ) to
ord( high( TEnumeration ) ) do
begin
str := getEnumName( typeInfo( TEnumeration ), si );
add(str);
end;
end;
end;
Zur Rückverwandlung in eine Enumeration nimmt man einfach den als TEnumeration gecasteten Index des gewünschten Elements aus der Stringliste.
[edit=Luckie]Code-Tags durch Delphi-Tags ersetzt. Mfg, Luckie[/edit]