如果我知道整数值的枚举,如何获得字符串表示?
type
MyEnum = (tmp_one, tmp_two, tmp_three);
const
MyTypeNames: array[tmp_one..tmp_three] of string = ('One', 'Two', 'Three');
如果我知道整数值的枚举,如何获得字符串表示?
type
MyEnum = (tmp_one, tmp_two, tmp_three);
const
MyTypeNames: array[tmp_one..tmp_three] of string = ('One', 'Two', 'Three');
我假设你有一个序数值而不是这个枚举类型的变量。如果是这样,那么您只需要将序数转换为枚举类型。像这样:
function GetNameFromOrdinal(Ordinal: Integer): string;
begin
Result := MyTypeNames[MyEnum(Ordinal)];
end;
我假设您想使用字符串数组中的名称。那么这很简单:
var
myEnumVar: MyEnum;
begin
myEnumVar := tmp_two; // For example
ShowMessage(MyTypeNames[myEnumVar]);
您不需要使用枚举类型的序数值。您可以将枚举类型的数组声明为其“下标”并直接使用枚举变量。
type
TMyEnum = (tmp_one, tmp_two, tmp_three);
const
MyTypeNames: array[TMyEnum] of string = ('One', 'Two', 'Three');
function Enum2Text(aEnum: TMyEnum): string;
begin
Result := MyTypeNames[aEnum];
end;
使用枚举或强制转换为枚举的整数值调用它:
Enum2Text(tmp_one); // -> 'One'
Enum2Text(TMyEnum(2)); // -> 'Three'