首页 > 解决方案 > 从主机应用程序调用函数

问题描述

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

有什么可能的方法吗?

该组件是一个导航器,应该调用一个搜索功能,该功能在另一个项目中编码。

标签: delphicomponents

解决方案


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

例如,您可以这样做:

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

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


推荐阅读