Im Prinzip darin, daß die Zählung nicht unbedingt bei 0 begonnen werden muß.
Aber wenn man es ganz genau sieht, müßte man sogar noch genauer hingucken, denn auch zwischendurch kann was weggelassen werden, aber real paßt noch viel mehr in in diese Variable rein. (2 hoch (SizeOf(TMeineAufzaehlung) * 8))
(aber leider ist die
RTTI seit jahrzehnten defekt, wenn es um Enums mit benutzerdefinierten Werten geht)
Delphi-Quellcode:
type
TMeinGemeinerEnum = (Abc=3, Xyz=9);
Anzahl = 2
Low(TMeinGemeinerEnum) = Abc
High(TMeinGemeinerEnum) = Xyz
Ord(Low(TMeinGemeinerEnum)) = 3
Ord(High(TMeinGemeinerEnum)) = 9
Ord(High(TMeinGemeinerEnum)) + 1 = 10 (aka Lenght, wenn man bei 0 beginnt zu zählen)
Ord(High(TMeinGemeinerEnum)) - Ord(Low(TMeinGemeinerEnum)) + 1 = 7