Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Enum Typ als Variable


Zudomon - Mo 09.11.09 03:48
Titel: Enum Typ als Variable
Hi!

Vielleicht kann mir jemand bei diesem Problem helfen...

Hier habe ich ein kleines Enum:

Delphi-Quelltext
1:
 TUsage = (US_POSITION, US_TEXCOORD0, US_TEXCOORD1);                    


Nun würde ich in meiner Anwendung gerne eine Variable haben, die einen bestimmten Enum Typ repräsentiert. Also nicht den Wert des Enums, sondern, um welches Enum es sich überhaupt handelt. In diesem Fall ebend "TUsage".

Mein momentaner Ansatz ist, dass ich den Enum Typ in einen String umwandel:

Delphi-Quelltext
1:
EnumType:= TTypeInfo(TypeInfo(TUsage)^).Name                    

Ob das der richtige Weg ist, weiß ich allerdings nicht.
Nun finde ich aber keine Möglichkeit, aus dem String wieder auf das richtigen Enum zu schließen.

Gruß
Zudo


Bernhard Geyer - Mo 09.11.09 10:27

Schau dir mal die Funktionen der Unit TypeInfo an. Ab D2010 hast du noch mehr möglichkeiten mit der Erweiterten RTTI/Reflektion zu arbeiten.

Aber sowas geht da ja auch die IDE/Runtime aus der DFM die Enumwerte wieder herstellen muss.