如果我有一个类型定义为枚举类型的集合,用 [] 创建一个空集很容易,但是如何创建一个完整集呢?
编辑:是的,显而易见的解决方案是使用 for 循环。如果有另一种方法,那也是一个非常糟糕的解决方案。有谁知道一种可以在恒定时间内起作用的方法?
Low() 和 High() 是可以在编译时评估的“编译器魔法”函数。这允许它们在常量声明中使用,如下所示:
变量 MySet : TBorderIcons; MySet2 : TBorderIcons; 常量 AllIcons : TBorderIcons = [Low(TBorderIcon)..High(TBorderIcon)]; 开始 MySet := [Low(TBorderIcon)..High(TBorderIcon)]; MySet2 := AllIcons; 结尾;
根据巴里的建议:
FillChar(VarSet, SizeOf(VarSet), $FF);