![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
как исползовать 'in' [D7, WinXP]
Xmen © (2007-04-06 11:26:00)привет народ
прикомпиляции кода
if OraQuery1.FieldByName('CODE').AsInteger in [0, 200,
300] then
Делфи выдает ошибку '[Error] Unit1.pas(257): Constant expression violates subrange bounds'
мне надо проверит значение OraQuery1.FieldByName('CODE').Value
(тип интежер) равонли один из 0, 200, 300
как это правилно пишется
TStas (2007-04-08 15:07:00) [1]in - это оператор для МНОЖЕСТВ. Множество по своему устройству никак не может иметь мощность больше 256. А Integer перечислимый тип, но куда как больше 256. То есть Set of Integer быть не может
Xmen (2007-04-06 12:40:00) [2]спасибо все
Krants (2007-04-06 11:54:00) [3]
> Desdechado ©
> Ega23 ©
Сорри, с множествами уже не работаю...
Xmen (2007-04-06 11:44:00) [4]всеравно тотже ошибка выдается
Desdechado (2007-04-06 11:42:00) [5]Krants © (06.04.07 11:39) [4]
Учить матчасть.
The base type can have no more than 256 possible values, and their ordinalities must fall between 0 and 255.
Krants (2007-04-06 11:39:00) [6]
> Ega23 © (06.04.07 11:29) [1]
Причем тут 0..255 для Integer?
> Xmen (06.04.07 11:26)
В принципе должно работать, попробуй так
if (OraQuery1.FieldByName('CODE').AsInteger in [0, 200,
300]) then
Xmen (2007-04-06 11:37:00) [7]спасибо
я думал об этих вариантов
с in бил бы карсиво
Сергей М. (2007-04-06 11:31:00) [8]Не мучайся, используй case:
case OraQuery1.FieldByName('CODE').AsInteger of
0,200,300: ...
else
...
end;
Ega23 (2007-04-06 11:29:00) [9]0..255
Так что с 300 - обломись.
if ... or ... or ... then