uses System.TypInfo;
type
TPreciousMetal = (Platinum, Gold, Silver);
//with explicit values;
//such enums have no RTTI (no names)
TPlanet = (Mercury = 1, Venus = 2, Earth = 3);
var
Metal: TPreciousMetal;
Planet: TPlanet;
begin
Metal := Gold;
Planet := Earth;
WriteLn('metal is ', GetEnumName(
TypeInfo(TPreciousMetal), Ord(Metal)));
WriteLn('planet is ', Ord(Planet));
end.