如何在delphi中排除用作数组索引的枚举类型的第一个元素?

Nas*_*out 11 delphi

我想排除此枚举类型的第一个值

type
  TEnum = (val0, val1, val2, val3, val4);
Run Code Online (Sandbox Code Playgroud)

为了制作这个数组

TBValues: array [low(TEnum)..High(TEnum)] of boolean;
Run Code Online (Sandbox Code Playgroud)

仅包含最后的n-1个值(在本例中为n = 5).

我试过这个:

TBValues: array [low(TEnum)+1..High(TEnum)] of boolean; 
Run Code Online (Sandbox Code Playgroud)

但我想在这种情况下不允许进行算术运算,因为我收到了这个编译错误

E2010不兼容类型:'Int64'和'TEnum'

这该怎么做?

Uwe*_*abe 15

显而易见的是:

TBValues: array [val1..val4] of boolean;
Run Code Online (Sandbox Code Playgroud)

如果要避免实际的枚举名称,可以这样写:

TBValues: array [Succ(low(TEnum))..High(TEnum)] of boolean;
Run Code Online (Sandbox Code Playgroud)

欲获得更多信息: