On Thursday 17 February 2005 07:37, Marco van de Voort wrote: > type myset = set of ( a1,a2,a3,a4,a5,a6); > > // workaround types > const > beginmyset=ord(low(myset)); > endmyset=ord(high(myset)); > type > uglyenum = beginmyset..endmyset; > uglyset= set of uglyenum; > > var b : myset; > i : integer; > > begin > b:=[a1,a2,a3]; > for i:=ord(low(myset)) to ord(high(myset)) do > if i in uglyset(b) then writeln(i); > end.
"Almost every complex solution ...": type My_Set = set of (a1, a2, a3, a4, a5, a6); // workaround type type Ugly_Enum = Low (My_Set) .. High (My_Set); var b : My_Set; i : Ugly_Enum; begin b := [a1, a2, a3, a5]; for i := Low (b) to High (b) do if i in b then WriteLn (Ord (i)); end. Personally I would prefer to first define the enum and the "set of enum" then. While looking at it: Notice that the code above just reverses the order of the definitions which you need anyway. Quite awkward, I think. Vinzent. _______________________________________________ fpc-devel maillist - fpc-devel@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-devel