1

继续我们的 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,你是如何实现这一早期步骤的?任何帮助将不胜感激。

4

1 回答 1

1

这就是我最终让它工作的方式,您需要声明一个插件实例:

Private
  fInstance: IHYVisualPlugin;

// Then Call in the FormCreate event
procedure TMainForm.FormCreate(Sender: TObject);
begin
    ModuleManager.LoadModules('C:\Users\user.Name\Documents\Visual Studio 2010\Projects\DynamicEF4\Product.Delphi.WPF\BIN\RELEASE\Product.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 窗体所必需的。

于 2012-10-09T12:59:37.913 回答