【问题标题】:Call a function from the host application从主机应用程序调用函数
【发布时间】:2019-06-30 04:53:07
【问题描述】:

我想在我的新组件中从我的主机应用程序调用一个函数。 基本上我想从其他项目中调用一个函数。

有什么办法可以做到吗?

组件是一个导航器,应该调用一个搜索函数,在其他项目中编码。

【问题讨论】:

  • 简单的回答是,是的,代码可以调用函数。具体如何完成取决于代码的组织。另一个功能是同一过程的一部分吗?在这种情况下调用它。它是不同过程的一部分吗?然后你需要某种形式的 IPC。
  • @DavidHeffernan 导航器需要编译主机应用程序。它用于主机应用程序。所以我想这是相同的过程。仅当宿主应用程序是已定义的应用程序时才应调用该函数。

标签: delphi components


【解决方案1】:

您希望组件能够在其宿主中调用函数。该组件不应该知道其主机的内部细节,这就是为什么您不能简单地调用该函数的原因。通过让主机为组件提供回调函数来解决问题。

例如,您可以这样做:

  1. 向您的组件添加一个事件来表示搜索函数回调。
  2. 当组件需要执行搜索功能时,它应该调用事件处理程序(如果已提供)。
  3. 在宿主项目中为此事件实施处理程序。
  4. 在宿主项目中,创建组件后,将事件属性设置为引用您的事件处理程序。

这完全类似于OnClick 事件处理程序TButton 的工作方式。按钮控件类似于您的组件。该按钮对主机应用程序一无所知。当它需要响应被点击时,它会触发宿主应用程序提供的事件。

【讨论】:

  • 工作就像一个魅力!
猜你喜欢
  • 1970-01-01
  • 2014-02-03
  • 1970-01-01
  • 1970-01-01
  • 2011-05-28
  • 1970-01-01
  • 2018-03-06
  • 2020-04-06
  • 1970-01-01
相关资源
最近更新 更多