delphi - 从主机应用程序调用函数
问题描述
我想在我的新组件中从我的主机应用程序调用一个函数。基本上我想从另一个项目中调用一个函数。
有什么可能的方法吗?
该组件是一个导航器,应该调用一个搜索功能,该功能在另一个项目中编码。
解决方案
您希望组件能够在其主机中调用函数。该组件不应该知道其主机的内部细节,这就是为什么您不能简单地调用该函数的原因。通过让主机向组件提供回调函数来解决问题。
例如,您可以这样做:
- 向您的组件添加一个事件来表示搜索函数回调。
- 当组件需要执行搜索功能时,它应该调用事件处理程序(如果已提供)。
- 在宿主项目中为此事件实施处理程序。
- 在宿主项目中,创建组件后,将事件属性设置为引用您的事件处理程序。
这完全类似于OnClick
事件处理程序的TButton
工作方式。按钮控件类似于您的组件。该按钮对主机应用程序一无所知。当它需要响应被点击时,它会触发宿主应用程序提供的事件。
推荐阅读
- python - Pandas Python 根据以下条件添加行
- node.js - 为什么第二个 console.log 先运行?
- java - 这是在 Java 中使用 private 的正确方法吗?
- python - 得到这个称为 TypeError 的错误:count() 至少需要 1 个参数(给定 0)
- ios - 当应用被用户杀死时如何重新启动位置更新?
- javascript - 如何根据字体真棒类设置CSS属性?
- python - 将数据框中的数组拉伸为相同的大小
- zig - 在 Zig 中,你如何判断一个帧是否代表一个完全执行的函数?
- assembly - 在arm组装中,堆栈是一个单独的内存单元还是主内存的一个分区?
- php - 使用内部代码或在 sql 中导入之前的 UTF-8 到 HTML 字符十进制代码