Ich habe eine Typdefinition:
TEnum = (Anfang = 1, Mitte = 3, Ende = 5);
und ein String-Array, in denen die Werte des Typs beschrieben werden:
Delphi-Quellcode:
g_TEnumNames = Array[TEnum] of String =
('Anfang',
'',
'Mitte',
'',
'Ende');
Wenn ich die Leerstring-Einträge weglasse, mault der Compiler (Anzahlen stimmen nicht überein). Warum?
Noch extremer wird es (finde ich jedenfalls), wenn ich über den Typ iteriere:
Delphi-Quellcode:
pos: TEnum;
...
for pos := Low(TEnum) to High(TEnum) do
TuIrgendwasMit(pos, g_TenumNames[pos]);
Die Schleife wird fünfmal durchlaufen, obwohl der Typ nur mit drei Werten definiert ist.
Gibt es eine saubere Methode, einen Typ aus drei Werten tatsächlich nur aus drei Werten bestehen zu lassen (und trotzdem eine selbstgewählte Numerierung beizubehalten)?