我如何填写德尔福集?

时间:2008-10-31 22:48:52

标签: delphi set

如果我将类型定义为 枚举类型,则使用[]创建空集很容易,但如何创建完整集?

编辑:是的,显而易见的解决方案是使用for循环。如果有另一种方式,这也是一个非常糟糕的解决方案。有没有人知道一种在恒定时间内工作的方式?

2 个答案:

答案 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);