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:
I always use
var s: TSuit; begin for s := Low(TSuit) to High(TSuit) do {something}; end;