Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Constant expression violates subrange bounds


nil_pointer ©   (2007-09-01 17:19:00) 

Почему это возникает?

procedure test1(const mytest: string);
begin
 Result := IntToStr(mytest) in [0..9, 10000..20000];
end;


Leonid Troyanovsky   (2007-09-01 17:39:00) [1]


> nil_pointer   (01.09.07 17:19)  

> procedure test1(const mytest: string);


Solve:

function test1(const mytest: Longint): Boolean;
begin
case mytest of
  0..9, 10000..20000:
    Result := True;
else
  Result := False;
end;
end;

if test1(StrToInt('..')) then

--
Regards, LVT.


Anatoly Podgoretsky   (2007-09-01 17:36:00) [2]

> Джо  (01.09.2007 17:27:01)  [1]

Три ошибки в одной строке :-)


Джо   (2007-09-01 17:27:00) [3]

Во-первых, Result в процедуре не может быть употреблен.
Во-вторых, IntToStr принимает в качестве аргумента Integer, а на выходе дает Str. А не наоборот.
В-третьих, [0..9, 10000..20000] — set. И:
The range of a set type is the power set of a specific ordinal type, called the base type; that is, the possible values of the set type are all the subsets of the base type, including the empty set. The base type can have no more than 256 possible values, and their ordinalities must fall between 0 and 255.
(с) Хелп.


Наверх

Титульная страница Поиск, карта сайта Написать письмо