пятница, 9 сентября 2011 г.

Ошибка: The number of items cannot be greater than 64, if the EditValueFormat is cvfInteger

Инструментарий: Delphi XEDevExpress
Ошибка: The number of items cannot be greater than 64, if the EditValueFormat is cvfInteger
Использую компоненты DevExpress в частности TcxCheckListBox. Данные для заполнения CheckListBox беру с базы данных. При заполнении выскакивает ошибка
The number of items cannot be greater than 64, if the EditValueFormat is cvfInteger
   Данная проблема появляется и в TcxGrid при кастомизации колонок. Если количество колонок превышает 64. И в рантайме при отключении/включении некоторых колонок - путем нажатия на кнопку ColumnQuickCustomization, тоже выскакивает сообщение:
The number of items cannot be greater than 64, if the EditValueFormat is cvfInteger. 
 
В первом случае явно используется TcxCheckListBox, вот втором случае при кастомизации колонок также используется компонент TcxCheckListBox. В обоих случаях по умолчанию свойство EditValueFormat = cvfInteger, значение которого не может быть больше 64. Поэтому, и возникает сообщение об ошибке.
Решение: Для TcxCheckListBox нужно поставить другой формат (EditValueFormat) к примеру cvfCaptions.
   Ну а с  TcxGrid ситуация не прояснилась, некоторые изменяют исходники, чтобы значение по умолчанию устанавливалось не cvfInteger. На сайте разработчиков пишут что значение установлено именно такое для совместимости, поскольку оно с самого начала было cvfInteger.
Конечно не самый хороший вариант, но все же лучше чем ничего. Может есть какие то методы доступа для установки типа, ну это нужно "копать глубже".

Автор:

Комментариев нет: