Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 02.08.2008, 16:41
dmdx dmdx вне форума
Начинающий
 
Регистрация: 24.05.2008
Адрес: Москва
Сообщения: 133
Репутация: 15
По умолчанию Интервальные типы даных

Все привет. Читаю книгу "Дельфи. Полное руководство" Сухарев М.
И вот вопрос возник в книге описаны интервальные типы данных. В краце это подмножество с начальным и конечными значениями. Используется для ограничения вводимого диапазона данных. и распростроняется на Integer и Char переменные. Но вот казус небольшой.

Код:
type
 TInt = 0..15;

var
 r: TInt;
...
procedure TForm1.Button1Click(Sender: TObject);
var
 i: integer;
begin
for i:=0 to 20 do
try
 r:=i;
finally
 ListBox1.Items.Add(inttostr(r));
end;
end;

по сути своей код должен добавить в ЛистБокс значения от 0 до 15 т.к. 16 - 20 не входит в диапазон интервального типа. Но программа выполняется без ошибок и присваевает переменной r значения с 16 по 20, что вообще то не должно быть.

Если же попытаться выполнить вот этот кусок кода

Код:
type
 TInt = 0..15;

var
 r: TInt;
...
procedure TForm1.Button1Click(Sender: TObject);
begin
try
 r:=20;
finally
 ListBox1.Items.Add(inttostr(r));
end;
end;

Программа соответственно отругается что переменной r присваемое значение не входит в диапазон...

Вопрос: Интересно почему же в цикле переменная r принимает значение выходящие из диапазона?

Последний раз редактировалось dmdx, 02.08.2008 в 16:47.
Ответить с цитированием
 


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 23:11.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025