我有一个TCustomClientDataSet
(在内存中)用于在Delphi程序中进行一些过滤。
我的过滤代码如下:
CDSFilteredGroup.Filter := 'ACP_type = 1 AND ACP_by_default <> False';
CDSFilteredGroup.Filtered := True;
当我编译并运行它时,只有在我的计算机上安装了Delphi(XE4)时才出现以下错误:
CDSFilteredGroup: Champ 'False' non trouvé.
翻译:找不到字段'False'。相同的代码在我的同事计算机上编译和运行完全正常,但不是我的。我想念某个地方一定有选择吗?
请记住,代码还可以正常工作......
答案 0 :(得分:7)
用于处理过滤字符串的 TExprParser 实例依赖于作为 STextTrue 和 STextFalse 给出的资源字符串。您可能有另一种语言,而不是为IDE库配置的英语。尝试切换到英语并查看错误是否消失。
要解决该问题,一般将文本“False”替换为resourcestring STextFalse 的内容。
顺便说一句,在后来的Delphi版本中,这一点得到了纠正,即使在非英语环境中也接受字面上的“假”。