Я пытаюсь написать функции, которые преобразуют перечисление в строку и обратно.
т.е.:
TConversions = class
strict private
public
class function StringToEnumeration<T:class>(x:String):T;
class function EnumerationToString<T:class>(x:T):String;
end;
в разделе реализации у меня есть
uses
System.TypInfo
;
class function TConversions.StringToEnumeration<T>(x:String):T;
begin
Result := T(GetEnumValue(TypeInfo(T), x));
end;
class function TConversions.EnumerationToString<T>(x:T):String;
begin
Result := GetEnumName(TypeInfo(T), integer(x));
end;
Проблема в том, что перечисление не имеет типа T:class
в паскале. Я не могу использовать T:record
.
Можно ли это сделать в pascal?