{$mode objfpc}
{$modeswitch typehelpers}
{$M+}
uses typinfo;
type
TRoosters = (GoldenRooster, Junglefowl, FightingCock, Fjalarr, Gullinkambi, GallicRooster, You);
TTestPituh = class(TObject)
private
TestField: TRoosters;
published
property TestProp: TRoosters read TestField write TestField;
end;
TRoostersHelper = type helper for TRoosters
public
function GetRoosterName: string;
end;
function TRoostersHelper.GetRoosterName: string;
begin
GetRoosterName := GetEnumName(GetPropInfo(TTestPituh,'TestProp')^.PropType, LongInt(self))
end;
begin
Writeln(FightingCock.GetRoosterName)
end.
eyRtb2RlIG9iamZwY30KeyRtb2Rlc3dpdGNoIHR5cGVoZWxwZXJzfSAKeyRNK30KCnVzZXMgdHlwaW5mbzsKCnR5cGUKICAgIFRSb29zdGVycyA9IChHb2xkZW5Sb29zdGVyLCBKdW5nbGVmb3dsLCBGaWdodGluZ0NvY2ssIEZqYWxhcnIsIEd1bGxpbmthbWJpLCBHYWxsaWNSb29zdGVyLCBZb3UpOwoKICAgIFRUZXN0UGl0dWggPSBjbGFzcyhUT2JqZWN0KQogICAgcHJpdmF0ZSAgCiAgICAgICAgVGVzdEZpZWxkOiBUUm9vc3RlcnM7CiAgICBwdWJsaXNoZWQKICAgICAgICBwcm9wZXJ0eSBUZXN0UHJvcDogVFJvb3N0ZXJzIHJlYWQgVGVzdEZpZWxkIHdyaXRlIFRlc3RGaWVsZDsKICAgIGVuZDsKCiAgICBUUm9vc3RlcnNIZWxwZXIgPSB0eXBlIGhlbHBlciBmb3IgVFJvb3N0ZXJzCiAgICBwdWJsaWMKICAgICAgICBmdW5jdGlvbiBHZXRSb29zdGVyTmFtZTogc3RyaW5nOwogICAgZW5kOwogCmZ1bmN0aW9uIFRSb29zdGVyc0hlbHBlci5HZXRSb29zdGVyTmFtZTogc3RyaW5nOwogICAgYmVnaW4KICAgICAgICBHZXRSb29zdGVyTmFtZSA6PSBHZXRFbnVtTmFtZShHZXRQcm9wSW5mbyhUVGVzdFBpdHVoLCdUZXN0UHJvcCcpXi5Qcm9wVHlwZSwgTG9uZ0ludChzZWxmKSkKICAgIGVuZDsKCmJlZ2luCiAgICBXcml0ZWxuKEZpZ2h0aW5nQ29jay5HZXRSb29zdGVyTmFtZSkKZW5kLg==