1

すでに Delphi にあるアプリケーション用の Delphi Prism でプラグインを作成する必要があります。www.remobjects.com で Hydra 3.0 についてすべて読んだことがありますが、いくつか質問があります。

  1. Delphi ホストと .Net プラグインの間の通信用のカスタム インターフェイスを作成する方法の例を教えてください (C# または Delphi Prism のいずれか)。

  2. Hydra プラグインでの ModuleController の役割は何ですか?また、そこでどのように機能しますか?

  3. Manager コンポーネントの役割?

よろしくお願いします。

4

1 に答える 1

1

私自身「ヒドラ」の旅を始めたばかりですが、あなたの質問に答えるために最善を尽くします.

Q1. これは、あなたの状況に関する詳細情報がなければ答えにくいです。Delphi コード ベースにアクセスできますか? 既にプラグインがある既存のアプリケーションにプラグインを追加しますか?それとも、Hydra プラグイン フレームワークをアプリケーションに追加し始めたばかりですか? 今のところ、既存のホスト アプリケーションに新しいプラグインを追加していて、ホストとプラグイン間の通信に使用するカスタム インターフェイスを含む .pas ファイルがあると思います。その場合は、次の方法でうまくいくはずです。

  • Visual Studio で新しい "RemObjects Hydar" -> "Plugin Module" プロジェクトを開始する必要があります。
  • [ツール] -> [Hydra] -> [Delphi ユニットからインターフェースをインポート] に移動して、通信インターフェースを含む .pas ファイルをインポートします。
  • 新しい "RemObjects Hydra" -> "(Non-)Visual Plugin" アイテムをプロジェクトに追加します。
  • インターフェイスを新しいプラグイン クラスに追加し、インターフェイスのメソッドを実装します。

それはそれについてあるはずです。これで、ホスト アプリケーションはプラグインにクエリを実行して、実装されているインターフェイスを確認し、必要なメソッドを呼び出すことができるようになります。

これは、インポートされたインターフェイス ファイルがどのように見えるかのようなものです

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 について言及していると思います。これは、実行時にすべてのプラグインをロードするために (とりわけ) 使用されます。

それが役立つことを願っています。

于 2009-09-03T02:11:15.310 に答える