gpt4 book ai didi

delphi - 将表单的第二个实例绑定(bind)到数据模块的第二个实例?

转载 作者:行者123 更新时间:2023-12-02 08:17:17 25 4
gpt4 key购买 nike

我有一个表单,其中具有绑定(bind)到数据模块中的数据集的数据感知控件。我需要在同一应用程序中创建表单和数据模块的附加实例。

我删除了数据模块首次添加到项目时自动创建的全局变量。令我高兴的是,在没有这个全局变量的情况下,设计器中的控件仍然可以绑定(bind)到数据模块中的数据集。我假设 IDE 正在解析数据模块的 dfm,以便设计人员仍然可以“看到”数据模块。 (如果没有在 IDE 中加载数据模块,数据源列表为空)

当我在运行时创建表单的两个实例和数据模块的两个实例时,表单的两个实例似乎仅绑定(bind)到创建的第一个数据模块。检查数据模块的第二个实例发现 Name 属性具有设计时不存在的数字后缀。

该表单依赖于数据模块中的大量数据集。是否有更简单的方法将第二个表单实例绑定(bind)到第二个数据模块的数据集,而无需为每个控件手动编码 SomeControl.DataSource := Module2.dsSomeData

我也愿意接受其他建议。一种解决方案是将数据集移动到表单本身。如果设计时数据绑定(bind)仅适用于单例,这似乎仍然是一种耻辱。

最佳答案

看看这个问题:
separate dataset instances using datamodules in delphi

基本上,答案是创建 DataModule,然后创建 Form,然后将创建的 DataModule 的名称设置为空字符串。这将使初始数据绑定(bind)发生,但阻止其他表单看到该模块。

此外,创建的下一个版本仍将具有原始名称(不需要数字后缀)。

关于delphi - 将表单的第二个实例绑定(bind)到数据模块的第二个实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19411637/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com