我必须在已经在Delphi中的Delphi Prism for Application中创建一个插件。 我已经在www.remobjects.com上阅读了有关Hydra 3.0的所有信息并且有一些疑问。
请举例说明如何为Delphi Host和.Net插件之间的通信创建自定义接口(在C#或Delphi Prism中)
ModuleController在Hydra插件中的作用是什么以及它在那里如何运作?
经理组件的角色?
非常感谢提前。
答案 0 :(得分:1)
我刚开始参加“九头蛇”之旅,但我会尽力回答你的问题。
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。这用于(除其他事项外)在运行时加载所有插件。
希望有所帮助。