Dev express VCL-Grid Режим фильтрации Excel - PullRequest
0 голосов
/ 22 февраля 2020

После обновления Dev express VCL с 18.2.5 до 19.1.2, чтобы использовать новейшие функции и особенно новый режим фильтрации Excel по сетке, но, к сожалению, компилятор не распознал некоторые константы и свойства, такие как константа dxDefaultFilterPopupWindowMode и свойство .Filtering.ColumnPopupMode объекта DBGridViews. Несмотря на то, что dxFilterPopupWindow помещен в условие использования.

Любая помощь?

Ответы [ 2 ]

4 голосов
/ 23 февраля 2020

Сегодня я обновил версию 18.1.2 до самой последней версии библиотеки Dev Express VCL, которая является версией 19.2.4 от 22 января 2020 года, и адаптировал существующий минимальный проект cxGrid для использования новой фильтрации в стиле Excel , Он скомпилирован и выполнен без ошибок.

Вот что я сделал:

1 Моя существующая папка установки Devex (та, которую вы указываете установщику): D:\DevExpress VCL

2 Я переименовал D:\DevExpress VCL в D:\DevExpress VCL Prev

3 Я запустил установщик 19.2.4, указав D:\DevExpress VCL в качестве папки для установки.

Вы упоминаете, что компилятор жалуется на идентификаторы dxDefaultFilterPopupWindowMode и ColumnPopupMode. Вы говорите: «Несмотря на то, что dxFilterPopupWindow указано в предложении использования,

dxDefaultFilterPopupWindowMode объявлено в строке 50 dxFilterPopUpWindow.Pas

const
  dxDefaultFilterPopupWindowMode: TdxFilterPopupWindowMode = fpmClassic;

, а ColumnPopupMode объявлено в строке 3361 cxGridTableView.Pas:

TcxGridTableFiltering = class(TcxCustomGridTableFiltering)
[...]
published
[...]
  property ColumnPopupMode: TdxFilterPopupWindowMode read GetColumnPopupMode write SetColumnPopupMode default fpmDefault;
end;

Я настоятельно рекомендую установить версию 19.2.4, как я описал выше, а затем проверить, что путь поиска вашего проекта включает путь к источникам Devex. Конечно, если вы будете следовать методу, который я описал, путь поиска проекта не нужно менять, если он был скомпилирован ранее.

Если компилятор все еще жалуется на невозможность найти dxDefaultFilterPopupWindowMode и ColumnPopupMode, тогда при условии, что вы не компилируете свой проект для использования пакетов времени выполнения, единственная возможная причина, о которой я могу подумать, это то, что компилятор находит более ранние версии dxFilterPopUpWindow.Dcu и cxGridTableView.Dcu, которые каким-то образом имеют более поздние отметки даты чем соответствующие файлы .PAS - в этом случае я бы удалил все экземпляры Devex Dcu из моей системы и попробую еще раз. Чтобы убедиться, что компилятор компилирует версию исходных файлов Devex, которая, по вашему мнению, есть, отредактируйте cxGridTableView.Pas, добавив «стопор компилятора», такой как восклицательный знак в самом верху файла: если компилятор не жалуется на это при попытке скомпилировать ваш проект, вы будете знать, что он находит и использует другую версию файла .xasrid.able или cxGridTableView .Dcu.

0 голосов
/ 23 февраля 2020

Наконец, эта ошибка произошла из-за того, что я оставил путь к предыдущей версии в пути к библиотеке Delphi, и он был до пути к новой версии. Итак, я удалил первый и сохранил новый. Et вуаля, теперь все идет хорошо :)) :)) 100 *

...