将Devexpress VCL从18.2.5升级到19.1.2后,为了使用最新功能,尤其是新的表格Excel过滤模式,但不幸的是,编译器无法识别某些常量和属性,例如dxDefaultFilterPopupWindowMode常量和DBGridViews的.Filtering.ColumnPopupMode属性。尽管将dxFilterPopupWindow放在了uses子句中。
有帮助吗?
最后,发生此错误的原因是,我在Delphi库路径中保留了先前版本的路径,而该路径在新版本的路径之前。因此,我删除了第一个,并保留了新的。等等,现在一切正常:):):)
今天,我从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
作为要使用的安装文件夹。
[您提到编译器抱怨标识符dxDefaultFilterPopupWindowMode
和ColumnPopupMode
。您说“尽管将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源的路径。当然,如果您遵循我描述的方法,则项目搜索路径无需更改(如果它是先前编译的)。
如果编译器仍然抱怨无法找到dxDefaultFilterPopupWindowMode
和ColumnPopupMode
,那么假设您是not编译项目以使用运行时程序包,这是我能想到的唯一可能的原因是编译器正在查找dxFilterPopUpWindow.Dcu和cxGridTableView.Dcu的早期版本,即以某种方式比相应的.PAS文件具有更高的日期戳-在这种情况下,我将删除所有实例从我的系统中提取Devex Dcu,然后重试。确保编译器正在编译您认为是的Devex源文件的版本,因此编辑cxGridTableView.Pas以添加“编译器停止器”例如文件最上方的感叹号:如果编译器没有对此抱怨尝试编译您的项目时,您会知道正在使用其他版本的cxGridTableView .Pas文件或.Dcu。