枚举类型值能和string比较吗或者转换(50分)

  • 主题发起人 主题发起人 轻音乐
  • 开始时间 开始时间
不可以,枚举是整数,如果需要,就自己写
TMyType = (e1, e2);
const SMyType: array[0..1] of string = ('e1', 'e2);

var m: TMyType
转成字符串:SMyType[Integer(m)];
比较: if SMyType[Integer(m)] = 'e1' then ...

-----
http://www.8421.org
 
当然是可以的:
type
TTT = (ta, tb, tc);

var
t: TTT;
s: string;
begin
t := tc
//枚举型
s := GetEnumName(TypeInfo(TTT), Ord(t))
// 字符串型了
showmessage(s);

s := 'tb'
// 字符串型
t := TTT(GetEnumValue(TypeInfo(TTT), s))
// 枚举型了
showmessage(inttostr(ord(t)));
end;
 
同意Beta,应加入TypInfo.pas单元
 
高人:)
 
后退
顶部