1) Does anyone know if it is possible to loop through an irregular enumeration in Delphi (XE)?
Looping over a normal enumeration is ok. From Delphi Basics:
type TSuit = (Hearts=1, Clubs, Diamonds=10, Spades); var suit: TSuit; suitEnum: array [1..4] of TSuit; //initialization suitEnum[1] := Hearts; suitEnum[2] := Clubs; suitEnum[3] := Diamonds; suitEnum[4] := Spades; for suit in suitEnum do DoSomething(suit);