从诸如TAnchors之类的集合类型变量开始:

  TAnchorKind = (akLeft, akTop, akRight, akBottom);
  TAnchors = set of TAnchorKind;


我正在尝试获得补充价值。

var
  Tmp : TAnchors;
begin
  Tmp := [akLeft];
   ...
end;


我期望得到所有不在TAnchors变量中的Tmp值。

例如,从[akLeft]开始,我期望得到[akTop, akRight, akBottom]

我试过使用not运算符,但它似乎不适用于Sets types

最佳答案

集合运算符在documentation中列出。此处未列出not运算符,这就是为什么不能在集合上使用它的原因。但是,您正在寻找差异运算符-。取包括所有成员在内的集合与您的集合之间的差异:

[Low(TAnchorKind)..High(TAnchorKind)] - Anchors

09-28 03:01