如果我将类型定义为 枚举类型,则使用[]创建空集很容易,但如何创建完整集?
编辑:是的,显而易见的解决方案是使用for循环。如果有另一种方式,这也是一个非常糟糕的解决方案。有没有人知道一种在恒定时间内工作的方式?答案 0 :(得分:14)
Low()和High()是可以在编译时评估的“编译魔术”函数。 这允许它们在如下的常量声明中使用:
var MySet : TBorderIcons; MySet2 : TBorderIcons; const AllIcons : TBorderIcons = [Low(TBorderIcon)..High(TBorderIcon)]; begin MySet := [Low(TBorderIcon)..High(TBorderIcon)]; MySet2 := AllIcons; end;
答案 1 :(得分:7)
Per Barry的建议:
FillChar(VarSet, SizeOf(VarSet), $FF);