unit uEnumConverter;
interface
type
TEnum = record
public
class function AsString(aEnum: T): string; static;
class function AsInteger(aEnum: T): Integer; static;
end;
implementation
uses
TypInfo
;
{ TEnum }
class function TEnum.AsString(aEnum: T): string;
begin
Result := GetEnumName(TypeInfo(T), AsInteger(aEnum));
end;
class function TEnum.AsInteger(aEnum: T): Integer;
begin
case Sizeof(T) of
1: Result := pByte(@aEnum)^;
2: Result := pWord(@aEnum)^;
4: Result := pCardinal(@aEnum)^;
end;
end;
end.
Subscribe to my newsletter
Get things that occur to me delivered straight to your inbox. Totally free, no spam.
Comments (0)
No comments yet. Be the first to comment!