[fpc-pascal] Enum RTTI
Wolfram Kläger
wolfram.klaeger at web.de
Thu Nov 5 11:10:24 CET 2009
> -----Ursprüngliche Nachricht-----
> Von: "Wimpie Nortje" <wimpienortje at gmail.com>
> Gesendet: 05.11.09 09:33:36
> An: FPC-Pascal users discussions <fpc-pascal at lists.freepascal.org>
> Betreff: [fpc-pascal] Enum RTTI
> I very often have enums for which I want string descriptions. I couldn't
> find a way to use RTTI to obtain the string descriptions so I resorted
> to having an array of strings. The problem is that the enums change
> frequently in item count and item order, which means I spend a lot of
> time fixing the string<->enum functions .
Wimpie,
maybe you want to try:
uses
typinfo;
// implementation
function Str(const AEnum : TEnum) : String; overload;
begin
Result := GetEnumName(TypeInfo(TEnum), ord(AEnum));
end;
I usually declare one such overload per enum type. If you are using sysutils.Str, you have to avoid conflicts by chosing a different function name, e.g. EnumStr.
Wolfram
More information about the fpc-pascal
mailing list