Wenn man Aufzählungstypen als benannte Konstanten einsetzt, sieht ist das mit(MyTypeConst.mtcInfo) oder ohne(mtcInfo) "NameSpace" gut lesbar, typsicher und man kann per GetEnumName(TypeInfo(EnumType),interger(EnumValue) ) zur Laufzeit immer den benannten Wert zurückbekommen.
Ist zwar etwas mehr Aufwand wie ein simples "const XXXX", erfüllt aber so die Frage-/Aufgabenstellung
Delphi-Quellcode:
MyTypeConst = (
mtcNotSet = $00,
mtcDummy = $01,
mtcInfo = $02,
mtcData = $03
);
function MyTypeConstToStr(const iMyTypeConst : Integer) : String; overload;
begin
result := GetEnumName(TypeInfo(MyTypeConst) , iMyTypeConst);
end;
function MyTypeConstToStr(const aMyTypeConst : MyTypeConst) : String; overload;
begin
result := GetEnumName(TypeInfo(MyTypeConst) , integer(aMyTypeConst));
end;
- mit GetEnumValue( funktioniert es andersrum... man bekommt den Wert zum "Namen"
- wenn nur der Type bekannt, gibt es "alle" möglichen Namen per von 0 hochzählender Schleife bis Fehler mit GetEnumName(