10

如果我有一个类型定义为枚举类型的集合,用 [] 创建一个空集很容易,但是如何创建一个完整集呢?

编辑:是的,显而易见的解决方案是使用 for 循环。如果有另一种方法,那也是一个非常糟糕的解决方案。有谁知道一种可以在恒定时间内起作用的方法?

4

2 回答 2

15

Low() 和 High() 是可以在编译时评估的“编译器魔法”函数。这允许它们在常量声明中使用,如下所示:

变量
  MySet : TBorderIcons;
  MySet2 : TBorderIcons;
常量
  AllIcons : TBorderIcons = [Low(TBorderIcon)..High(TBorderIcon)];
开始
  MySet := [Low(TBorderIcon)..High(TBorderIcon)];
  MySet2 := AllIcons;
结尾;
于 2008-11-03T04:02:32.323 回答
7

根据巴里的建议:

FillChar(VarSet, SizeOf(VarSet), $FF);
于 2008-11-01T00:34:31.857 回答