我必须在 Delphi Prism 中为已经在 Delphi 中的 Application 创建一个插件。我已在 www.remobjects.com 上阅读了有关 Hydra 3.0 的所有信息,并有一些疑问。
你能给我一个例子,如何为 Delphi Host 和 .Net Plugin 之间的通信创建自定义接口。(在 C# 或 Delphi Prism 中)
ModuleController 在 Hydra 插件中的作用是什么以及它是如何工作的?
管理器组件的作用?
提前谢谢了。
我必须在 Delphi Prism 中为已经在 Delphi 中的 Application 创建一个插件。我已在 www.remobjects.com 上阅读了有关 Hydra 3.0 的所有信息,并有一些疑问。
你能给我一个例子,如何为 Delphi Host 和 .Net Plugin 之间的通信创建自定义接口。(在 C# 或 Delphi Prism 中)
ModuleController 在 Hydra 插件中的作用是什么以及它是如何工作的?
管理器组件的作用?
提前谢谢了。
我自己刚刚开始“九头蛇”之旅,但我会尽力回答您的问题。
Q1。如果没有有关您的情况的更多信息,这很难回答。您可以访问 Delphi 代码库吗?您是在向已有插件的现有应用程序添加插件,还是刚刚开始将 Hydra 插件框架添加到您的应用程序?现在我猜你正在向现有的主机应用程序添加一个新插件,并且你有一个 .pas 文件,其中包含你将用于主机和插件之间通信的自定义接口。如果是这种情况,那么以下内容应该适合您。
应该是这样的。您的主机应用程序现在可以查询您的插件以查看它实现了哪些接口,然后调用它需要的方法。
这类似于您导入的接口文件的外观
type
{$REGION Attributes}
[Guid('9D445B3E-CA9F-4C67-815A-F5EC6BAB5D60')]
{$ENDREGION}
IMyInterface = public interface(IHYCrossPlatformInterface)
method MyMethod(const MyInput: String; out MyOutput: String);
end;
这就像你的插件类应该是什么样子
type
[Plugin, NonVisualPlugin]
MyPlugin = public partial class(RemObjects.Hydra.NonVisualPlugin, IMyInterface)
private
protected
method Dispose(aDisposing: boolean); override;
method MyMethod(const MyInput: String; out MyOutput: String);
public
constructor;
end;
Q2。据我所知,模块控件负责将插件模块中的所有插件注册到主机应用程序中。您还可以从插件中使用它与主机应用程序进行通信。
Q3。我假设您指的是 THYModuleManager。这用于(除其他外)在运行时加载所有插件。
希望有帮助。