【问题标题】:How to Link TFDConnection with a TFDManager如何将 TFDConnection 与 TFDManager 链接
【发布时间】:2021-02-22 08:07:55
【问题描述】:

我有一个 Delphi 10 应用程序,其中包含许多表单。每个表单都使用一个在登录时创建的名为“Connection1”的 TFDConnection。目前TFDManager以一种形式定义,TFDConnection以另一种形式定义。问题是如何将这两者链接在一起,以便 TFDConnection 继承 TFDManager 的一些设置。应用程序中的所有 TFDConnections 是否都自动链接到 TFDManager,或者 TFDConnection 中是否有需要启用才能将其链接到 TFDManager 的设置?

【问题讨论】:

  • 这其实是多个问题合二为一。 StackIverflow 不允许这样做。请编辑您的“问题”以提出一个问题,然后根据需要创建尽可能多的其他问题。

标签: delphi firedac delphi-10.4-sydney


【解决方案1】:

只有在使用子句中添加了另一个表单后,您才能在设计时(对象检查器)从不同的表单链接两个组件。一旦你这样做了,在对象检查器中,属性的下拉列表也会显示来自其他表单的值。

您还可以在运行时链接它们:将一个的属性分配给另一个的值。

FDQuery1.Connection := Form1.FDConnection1;

请注意,这会使两个表单相互依赖,如果您没有正确管理这两个表单的生命周期,您可能会遇到麻烦。

别忘了阅读documentation

【讨论】:

  • 我是 Dellphi 编程新手,能否分享一下我们如何在运行时链接 TFDManager 和 TFDConnetion 的信息
  • 我不喜欢这个答案的一点是它是不正确的:您实际上可以使用Object Inspector链接来自不同表单的组件> 在设计时。
  • 不,我对这些 FireDAC 组件了解不多。但是试试这个:创建一个新的 VCL 应用程序,在主窗体上放置一个名为 PopupMenu1TPopupMenuvar Form1: TForm1 in Unit1)。创建一个新表单(var Form2: TForm2 in Unit2)。使用 File / Use unit (Alt+F11) 将Unit1 添加到Unit2 中实现部分的uses 子句。现在您可以使用Object Inspector选择Form1.PopupMenu1作为TForm2的弹出菜单。
  • 集中连接的正确位置是DataModule,所有表单都可以访问。
  • @fpiette:当然,我只是指出数据模块是专门作为(非 GUI)数据组件的非可视容器引入的,然后可以根据需要被尽可能多的表单引用并避免(imo 肯定不好)让一个表单需要访问另一个表单的数据访问组件的做法。
猜你喜欢
  • 2016-04-27
  • 1970-01-01
  • 2021-05-06
  • 2017-11-27
  • 2021-08-21
  • 2019-01-31
  • 2016-04-13
  • 2018-02-09
  • 2016-06-14
相关资源
最近更新 更多