uses System.TypInfo;
type
TSeason = (Summer, Fall, Winter, Spring);
var
Season: TSeason;
begin
//enums iterate over the ordinal range
for Season := Low(TSeason) to High(TSeason) do
WriteLn(GetEnumName(
TypeInfo(TSeason), Ord(Season)));
end.