Typisierte ordinaltypen werden intern behandelt wie normale Ordinaltypen. Daher ist es generell möglich diese Typen in beide Richtungen zu casten:
Code:
Integer(mtFoo)=0 <-> TMyType(0)=mtFoo
Integer(mrBar)=1 <-> TMyType(1)=mtBar
Interessant wird diese Betrachtung, wenn man sich überlegt, dass
Delphi-Quellcode:
type
TMySet = set of TMyType;
Tatsächlich einem "Strom" von Bits entspricht, wobei dann das nullte Bit (mtFoo) entspricht, usw
Beachten solltest Du noch, dass
GetEnumValue den Wert -1 zurückgibt, falls der Identifier nicht zugeordnet werden konnte, der Cast selbst (
Integer(GetEnumValue(...))) macht hier keine weiteren Prüfungen!