【问题标题】:Delphi XE3: DBLookupCombo Dropdown side effectDelphi XE3:DBLookupCombo 下拉副作用
【发布时间】:2013-06-07 08:06:18
【问题描述】:

我们正在将 D6 应用程序移植到 XE3。

在 D6 中,我继承了一个复杂的代码,它到处使用共享数据集和数据源。

这在 D6 中运行良好。

在我们可以运行 XE3 版本之后,我们发现查找组合框发生了变化。

在下拉菜单中,他们重置其他下拉菜单的键值(程序中的任何地方)!

如果在数据集上使用了两个下拉菜单,并且如果我单击第一个下拉它,然后选择,则在第二个键值上更改为 NULL;和反向 - 如果我点击第二个,第一个的键值更改为 NULL...

这在这个程序中是全局的,所以我需要找到快速的解决方案。

可能有人有关于这个“错误”(或“功能”的任何信息?:-)),或者他/她有解决方案吗?

感谢您的任何回答!

【问题讨论】:

    标签: database delphi combobox lookup delphi-xe


    【解决方案1】:

    这是故意的。看看Vcl.DBCtrlsTCustomDBLookupComboBox.ListLinkDataChanged;的实现。你会发现评论:

      { Fix for Defect# 204311, Non-bound control should clear when list datasource changes }
    

    【讨论】:

      【解决方案2】:

      解决方案:将数据集放在数据模块上。为每个表单实例化它,因此每个表单都使用数据集的单独实例。确保在实例化后将数据模块的名称设置为空字符串,否则 Delphi 流系统在将表单的数据源与数据集连接时仍将使用第一个正确命名的实例。

      当数据模块位于表单的 uses 子句中(接口或实现无关紧要)时,IDE 仍会通过 Object Inspector 为您提供它们的组件。

      您将希望将数据库连接放在只实例化一次的不同数据模块上(可能是自动实例化)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-04-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-05-08
        • 1970-01-01
        相关资源
        最近更新 更多