列挙型を整数に変換する方法を知っています。
type
TMyType = (mtFirst, mtSecond, mtThird);
var
ordValue:integer;
enumValue:TMyType;
...
ordValue:= Ord(mtSecond); // result is 1
しかし、逆の操作を行って整数を列挙型に変換するにはどうすればよいでしょうか?
ベストアンサー1
Ken が答えたように、キャストするだけです。ただし、正しい値であることを確認するには、次のようなコードを使用できます。
if (ordValue >= Ord(Low(TMyType))) and (ordValue <= Ord(High(TMyType))) then
enunValue := TMyType(ordValue)
else
raise Exception.Create('ordValue out of TMyType range');