Devexpress VCL-Grid Excel 过滤模式

Devexpress VCL-Grid Excel filtering mode

将Devexpress VCL从18.2.5升级到19.1.2后,为了使用最新的功能,尤其是新的网格Excel过滤模式, 但不幸的是,编译器无法识别某些常量和属性,例如 dxDefaultFilterPopupWindowMode 常量和 .Filtering.ColumnPopupMode 属性 的 DBGridView。 尽管将 dxFilterPopupWindow 放在 uses 子句中。

有什么帮助吗?

最后, 出现这个错误是因为我在Delphi库路径中留下了之前版本的路径,而在新版本的路径之前。 所以,我删除了第一个,并保留了新的。 Et voila,现在一切都运行良好:):):)

今天我从18.1.2版本升级到最新版本的DevExpress VCL库, 这是 2020 年 1 月 22 日发布的版本 19.2.4,并改编了现有的最小 cxGrid 项目使用新的 Excel 风格的过滤。编译执行没有任何错误。

这是我所做的:

1 我现有的 Devex 安装文件夹(您告诉安装程序使用的文件夹)是 D:\DevExpress VCL

2 我将 D:\DevExpress VCL 重命名为 D:\DevExpress VCL Prev

3 我 运行 19.2.4 安装程序,将 D:\DevExpress VCL 作为要使用的安装文件夹。

你提到编译器抱怨标识符 dxDefaultFilterPopupWindowModeColumnPopupMode。你说“尽管将 dxFilterPopupWindow 放在 uses 子句中。

dxDefaultFilterPopupWindowMode 在 dxFilterPopUpWindow.Pas

的第 50 行声明
const
  dxDefaultFilterPopupWindowMode: TdxFilterPopupWindowMode = fpmClassic;

ColumnPopupMode 在 cxGridTableView.Pas 的第 3361 行声明:

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

我强烈建议你按照我上面描述的方式安装19.2.4版本,然后检查你的 项目的搜索路径包括 Devex 源的路径。当然,如果按照我介绍的方法,之前编译过的工程搜索路径应该不需要改。

如果编译器仍然报错 无法找到 dxDefaultFilterPopupWindowModeColumnPopupMode,然后假设您是 编译你的项目使用 运行-time 包,我能想到的唯一可能的原因 是编译器正在查找 dxFilterPopUpWindow.Dcu 和 cxGridTableView.Dcu 的早期版本 以某种方式具有比相应的 .PAS 文件更晚的日期戳 - 在这种情况下我会删除所有实例 从我的系统中删除 Devex Dcu,然后重试。一种确保编译器正在编译的方法 您认为的 Devex 源文件版本是编辑 cxGridTableView.Pas 以添加 "compiler stopper" 例如文件顶部的感叹号:如果编译器不抱怨这个 当尝试编译你的项目时,你会知道它正在寻找并使用另一个版本的 cxGridTableView .Pas 文件或.Dcu.