Подтвердить что ты не робот

Как заполнить набор Delphi?

Если у меня есть тип, определенный как набор перечисляемого типа, легко создать пустой набор с помощью [], но как создать полный набор?

EDIT: Да, очевидным решением является использование цикла for. Это также очень плохое решение, если есть другой способ. Кто-нибудь знает способ, который будет работать в постоянное время?

4b9b3361

Ответ 1

Low() и High() - это "магия компилятора", которые могут быть оценены во время компиляции. Это позволяет использовать их в постоянных объявлениях следующим образом:

var
  MySet : TBorderIcons;
  MySet2 : TBorderIcons;
const
  AllIcons : TBorderIcons = [Low(TBorderIcon)..High(TBorderIcon)];
begin
  MySet := [Low(TBorderIcon)..High(TBorderIcon)];
  MySet2 := AllIcons;
end;

Ответ 2

В предположении Барри:

FillChar(VarSet, SizeOf(VarSet), $FF);