Einzelnen Beitrag anzeigen

mensch72

Registriert seit: 6. Feb 2008
838 Beiträge
 
#5

AW: Globale Konstanten zur Laufzeit ermitteln

  Alt 23. Apr 2014, 08:56
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(

Geändert von mensch72 (23. Apr 2014 um 09:05 Uhr)
  Mit Zitat antworten Zitat