继续我们的Delphi 2010胖客户端到多层迁移(上一个问题),我们需要找到一个数据绑定解决方案。我遇到了RemObjects Hydra。问题是我似乎无法遵循他们的主机程序教程,并且对于插件我在Visual Studio中创建了一个Hydra插件项目,实现了所描述的界面,并且构建良好。
[Guid("8F1B3EE3-CC69-4685-B141-FAF2F4FB57C4")]
public interface IGridPlugin : IHYCrossPlatformInterface
{
string UserData { get; set; }
int ID { get; set; }
}
在插件中:
[Plugin(Name = "GridPlugin", Description = "This is the Grid plugin", UserData = "Data"), VisualPlugin]
public partial class GridPlugin : RemObjects.Hydra.WPF.VisualPlugin, IGridPlugin
{
在 Delphi 中,我创建了一个新的 Hydra 主机项目,导入了接口,但在创建/加载事件的形式中,他们提到了:
procedure TMainForm.FormCreate(Sender: TObject);
begin
ModuleManager.LoadModule('SilverlightPlugin.xap');
ModuleManager.CreateVisualPlugin('SilverlightPlugin', fInstance, Panel1);
end;
什么是 fInstance?此外,我的 WPF 插件项目中没有文件以 .xap 结尾,那么我应该作为参数传递什么?
有没有人实现过RemObjects Hydra,你是如何实现这一早期步骤的?任何帮助将不胜感激。
这就是我最终让它工作的方式,您需要声明插件的实例:
Private
fInstance: IHYVisualPlugin;
// Then Call in the FormCreate event
procedure TMainForm.FormCreate(Sender: TObject);
begin
ModuleManager.LoadModules('C:Usersuser.NameDocumentsVisual Studio 2010ProjectsDynamicEF4Product.Delphi.WPFBINRELEASEProduct.Delphi.WPF.dll');
ModuleManager.CreateVisualPlugin('ViewerPlugin', fInstance, pnl1);
end;
// And then in the FormDestroy event
procedure TMainForm.FormDestroy(Sender: TObject);
begin
ModuleManager.ReleaseInstance(fInstance);
end;
我想我看错了例子,我看到的.xap与silverlight有关,并且对于wpf或windows表单不是必需的。