Как мне заполнить набор Delphi? - PullRequest
10 голосов
/ 01 ноября 2008

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

РЕДАКТИРОВАТЬ: Да, очевидное решение заключается в использовании цикла for. Это также действительно плохое решение, если есть другой путь. Кто-нибудь знает способ, который будет работать в постоянное время?

Ответы [ 2 ]

14 голосов
/ 03 ноября 2008

Low () и High () - это «волшебные» функции компилятора, которые можно оценить во время компиляции. Это позволяет использовать их в объявлениях констант, таких как:

var
  MySet : TBorderIcons;
  MySet2 : TBorderIcons;
const
  AllIcons : TBorderIcons = [Low(TBorderIcon)..High(TBorderIcon)];
begin
  MySet := [Low(TBorderIcon)..High(TBorderIcon)];
  MySet2 := AllIcons;
end;
7 голосов
/ 01 ноября 2008

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

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