Delphi 2009 - Ошибка? Добавление предположительно недопустимых значений в набор

Во-первых, я не очень опытный программист. Я использую Delphi 2009 и работаю с наборами, которые мне кажутся очень странными и даже непоследовательными. Полагаю, это мог быть я, но следующее выглядит так, будто что-то явно не так:

unit test;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
  Button1: TButton;
  Edit1: TEdit;
  procedure Button1Click(Sender: TObject);
private
    test: set of 1..2;
end;

var Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  test := [3];
  if 3 in test then
    Edit1.Text := '3';
end;

end.

Если вы запустите программу и нажмете кнопку, то, конечно же, она отобразит строку «3» в текстовом поле. Однако, если вы попробуете то же самое с числом вроде 100, ничего не будет отображаться (как должно, на мой взгляд). Я что-то упускаю или это какая-то ошибка? Совет будет признателен!

РЕДАКТИРОВАТЬ: Пока что, похоже, я не одинок со своими наблюдениями. Если кто-то знает об этом изнутри, я буду очень рад услышать об этом. Кроме того, если есть люди с Delphi 2010 (или даже Delphi XE), я был бы признателен, если бы вы могли провести некоторые тесты этого или даже общего поведения набора (например, «test: set of 256..257»), как это было бы будет интересно узнать, изменилось ли что-нибудь в новых версиях.

6
задан Socob 30 January 2011 в 02:27
поделиться