Einzelnen Beitrag anzeigen

Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.617 Beiträge
 
#1

Enumerationen zu Namen auflösen

  Alt 4. Sep 2003, 14:37
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]
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat