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 (nrComm)


Страницы:   1 2

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;


Страницы:   1 2

Наверх

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