![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Constant expression violates subrange bounds (nrComm)
Kolan © (2010-04-01 10:34:00)Здравствуйте!
В компоненте nrComm есть много таких констант:
...
ERROR_NO_SUCH_DEVINST = APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or $20B;
...
И есть функция, которая их использует:
function GetSetupError(code:integer):string;
begin
Result := '#' + IntToHex(code, 8) + '.';
case code of
ERROR_NO_SUCH_DEVINST:
Result := Result + ' Device not found.';
ERROR_NO_AUTHENTICODE_CATALOG,
ERROR_AUTHENTICODE_DISALLOWED,
ERROR_AUTHENTICODE_TRUSTED_PUBLISHER,
ERROR_AUTHENTICODE_TRUST_NOT_ESTABLISHED,
ERROR_AUTHENTICODE_PUBLISHER_NOT_TRUSTED,
ERROR_SIGNATURE_OSATTRIBUTE_MISMATCH,
ERROR_ONLY_VALIDATE_VIA_AUTHENTICODE:
Result := Result + ' Driver authentication error.';
end;
end;
При компиляции воявляется ворнинг на каждую строку кейса:[DCC Warning] nrwin32di.pas(836): W1012 Constant expression violates subrange bounds
Странно то, что в тестовом проекте (только форма и накиданные на неё компоненты) выдается только этот ворнинг, а в рабочем проекте (где компонент не на форме, а создается в коде) к каждому ворнингу добавляется еще и ошибка:[DCC Error] nrwin32di.pas(836): E2026 Constant expression expected
Вопросы:
1. Почему возникает ворнинг?
2. Почему ошибка возникает только в рабочем проекте?
3. Как сделатьтак, чтобы компилилось?
Компонент лицензионный, но поддержка говорит, что у них все хорошо.
Конмпилил в D2009 и D2010.
Дмитрий Белькевич (2010-04-01 10:47:00) [21]
> еще и ошибка: [DCC Error] nrwin32di.pas(836): E2026 Constant
> expression expected
На какой строке пишет?
Kolan (2010-04-01 10:35:00) [22]Да, константы в константах объявлены так:
APPLICATION_ERROR_MASK = $20000000;
ERROR_SEVERITY_SUCCESS = $00000000;
ERROR_SEVERITY_INFORMATIONAL = $40000000;
ERROR_SEVERITY_WARNING = $80000000;
ERROR_SEVERITY_ERROR = $C0000000;