Q qdyoung Unregistered / Unconfirmed GUEST, unregistred user! 2002-06-15 #2 不可以,枚举是整数,如果需要,就自己写 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
不可以,枚举是整数,如果需要,就自己写 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
B beta Unregistered / Unconfirmed GUEST, unregistred user! 2002-06-16 #3 当然是可以的: 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;
当然是可以的: 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;