HY02-循序渐进地开发Hydra可视插件

  • 格式:pdf
  • 大小:941.61 KB
  • 文档页数:16

HY02-循序渐进地开发Hydra可视插件
翻译者:英雄莫问出处(QQ:28922297)
创建Hydra插件是一个非常简单的过程,完全可以通过我们的IDE 向导自动地进行创建。

下面的截图将向你展示创建一个新的Hydra模块,以及如何向其加入一个可视插件所需要的全部步骤。

如果想看一下如何装载模块及显示可视插件可直接跳到“编写一个主体应用程序”段。

如何创建一个Hydra模块
单击File|New|Other并选择Hydra页,选取“Hydra Module Project”
单击“OK”,新的Hydra模块工程向导会启动,并呈现一个欢迎画面:
单击“Next”
输入想要保存的新工程的路径及工程名称,单击“Next”。

输入模块控制器的名称及它的单元文件名,单击“Next”
为插件库输入名称及版本,单击“Next”
现在可输入可选项“Required Privilege”以加强安全性,然后单击“Next”
为Hydra模块输入描述(可选的),单击“Next”
核对一下那些输入的所有信息是否正确,单击“Finish”创建第一个可视插件
你的Hydra模块创建后,一个新的向导会显示出来,这个向导会帮助你创建第一个插件并将它加入到模块中。

下面的步骤展示了这是多么简单的事情:
单击“Next”
选择"Visual Hydra Plugin"并单击“Next”
输入插件的名称,单击“Next”
输入可选项“Required Privilege”以加强安全性,单击“Next”
输入“User Data”(可选项),单击“Next”
为插件输入描述(可选),然后单击“Next”
核对所有输入项的正确性,并单击“Finish”,接下来会被问到哪一个包要包含到程序中去:
单击“Ok”,NewPluginLibrary.dll被创建,并且Form1(标题为HYVisualPlugin1)会被打开。

完成可视插件
现在是加入一些控制到我们的插件中并写一些代码的时候了。

为了能简单一些,我们只加入两个按钮控件(一个显示信息框,一个发出“嘀嘀”声)和一个action list控件到窗体中,注意行为集是如何附加到按钮控件上的(行为集合是THYHydraAction类型)。

Hydra行为集合继承自TAction,它包括的一些额外的属性对来自于主(体)程序的存取是有用的。

这些选项显示在下面的截图中(但是在创建你自己的行为集合前请看一下以下的提示):
编写主(体)程序
为了创建一个Hydra主(体)程序,请单击“File|New|Other”,并选择“Hydra”页,选取“Host Application”
单击“Ok”,新的主程序向导(Host Application Wizard)会启动,一个欢迎画面会呈现在眼前:
单击“Next”
输入新工程所要保存的路径,并为其键入名称,单击“Next”
核对所输入的全部信息的正确性,单击“Finish”
最后的对话框现在会显示出来,该对话框让你设置工程的运行时包选项。

选择第一个选项并单击“Ok”。

打开主窗体,会看到它已经包含了一个THYModuleManager组件,将它重命名为“ModuleManager”,增加两个按钮控件(TButton)及一个面板控件(TPanel),一个按钮控件重命名为“bLoad”(负责装载插件),另一个重命名为“bUnload”,将以下的代码附加到事件处理操作上:
const TestDLLName='NewPluginLibrary.dll';
procedure TMainForm.bLoadClick(Sender:TObject);
begin
if(ModuleManager.FindModule(TestDLLName)=NIL)
then ModuleManager.LoadModule(TestDLLName);
ModuleManager.CreateVisualPlugin('NewVisualPlugin',fVisualPlugin, Panel1);
end;
procedure TMainForm.bUnloadClick(Sender:TObject);
begin
ModuleManager.ReleaseInstance(fVisualPlugin);//Equivalent to setting to NIL
if(ModuleManager.FindModule(TestDLLName)<>NIL)
then ModuleManager.UnloadModule(TestDLLName);
end;
procedure TMainForm.FormClose(Sender:TObject;var Action: TCloseAction);
begin
bUnload.Click;
end;
注意:CreateVisualPlugin已经被一个叫做fVisualPlugin的
'out'参数传递,它需要作为一个IHYVisualPlugin类型的私有变量被加入到主窗体中(并且在uses语句中uHYIntf也是必需的)下面的截图显示了窗体看起来应该的样子:
运行主(体)程序
此刻,可以准备运行主(体)程序了。

编译并运行它。

单击“Load”按钮。

注意Hydra插件已经被装载到主(体)程序中。

单击“Unload”按钮。

好了,现在你已经拥有一个使用插件的简易程序了。

©RemObjects Software,Inc.2002-2004.All rights reserved. 。