delphi - 如何检查单元和功能是否存在?
问题描述
我正在使用 Delphi 11。有没有办法在 TDataModule 中运行特定函数,但前提是这个数据模块存在于我的项目中?
我需要一种方法来检查数据模块是否存在并将函数作为字符串调用,因为有些项目会添加这个数据模块,而其他项目则不会。
而不是这个:
myDataModule.myfunction(param);
会是这样的虚构代码:
if TDataModule(findcomponent('myDataModule')) <> nil then
TDataModule(findcomponent('myDataModule')).call('myfunction','param');
解决方案
一个轻量级的解决方案可能是消息(来自System.Messaging的那些)。
- 声明一个新的TMessage后代,保存调用所需的参数
- 创建数据模块时,它使用执行操作的处理程序订阅此消息类型。
- 无需搜索数据模块,只需发送消息。
推荐阅读
- google-chrome - chrome google 扩展程序将消息数据从后台发送到 ui
- ios - iOS中信号量导致的崩溃如何处理?
- python - 使用 selenium 将所有列中的数据刮入 python 以加载更多
- php - 在 PHP 7.4 macOs Big Sur 中使用 Postgres
- java - Logback 1.2.3 日志被中线截断
- javascript - 基于我通过 GAS 更改的电子表格的 Google App Script onChnge 触发器
- matlab - 在图表上标记点 - matlab
- jquery - 如果选择下拉列表中的字段为空,则显示工具提示
- javascript - Vue - 致命错误:CALL_AND_RETRY_LAST 分配失败 - JavaScript 堆内存不足
- firebase-admin - 使用服务帐户密钥连接到 firebase admin sdk