1

プラグインを使用するアプリケーションを構築しています。私は優れた JVCL プラグイン フレームワークを使用しています。私は最初にパッケージプラグインを使い始めました。それは魅力のように機能しましたが、大きな欠点がありました: ランタイム bpl (23Mo) を与える必要があります。そこで、DLL プラグインに切り替えます。

hostapplication からメソッド (3 つのパラメーターを持つプロシージャー) を呼び出す必要がありますが、その方法がわかりません。OBones は Jedi newgroup でコールバック関数を使用するように説明しましたが、これを実現する方法がわかりません。

誰かが親切に私を説明してくれますか、それとも例を送ってくれますか? JVCL 1SimplePlugin デモを入手して更新できます。

事前に感謝します

ブラジル

ステファン・ヴィエルズビッキ

4

1 に答える 1

3

基本的なコンセプトは非常にシンプルです。コールバック メソッドは、コードに渡すメソッドへのポインターであり、特定の時間に呼び出して動作をカスタマイズできるようにします。Delphi の経験が少しでもある場合は、「イベント ハンドラ」という別の名前のコールバック メソッドにすでに慣れているでしょう。

プラグインで次のようなことを試してください。

type
   TMyEvent = procedure(param1, param2, param3: integer) of object;

procedure AddCallback(callback: TMyEvent);

このプロシージャは、渡された TMyEvent メソッド ポインタを受け取り、どこかに格納します。FCallback という変数で考えてみましょう。アプリを呼び出すときが来ると、コードは次のようになります。

if assigned(FCallback) then
   FCallback(param1, param2, param3);

プラグインを設定するときは、次のようにアプリから呼び出します。

MyPlugin.AddCallback(self.callbackProc);

場合によっては、@ をその前に置く必要があります (@self.callbackProc)。これにより、コンパイラはそれがメソッド ポインターであり、メソッド呼び出しではないことを認識できますが、これは常に必要なわけではありません。

于 2009-12-03T11:17:04.660 に答える