3

このスクリプト コードをイメージすると、次のようになります。

procedure A;
begin
  CallToDelphi;
end;

procedure B;
begin
  // do something
end;

プロシージャ「CallToDelphi」をスクリプトに公開しました。この関数が呼び出されると、Delphi コードのスクリプトから戻ります。ここで、Delphi コードからスクリプト プロシージャ「B」を呼び出したいと思います。IdwsProgramExecution-Context に隠されている必要があると思います。しかし、私はまだ何も見つけていません。私はそのようなものを探しています:

procedure CallToDelphi;
begin
  Exec.Invoke('B', []); // Exec is IdwsProgramExecution
end;

これはどういうわけか可能ですか?

4

1 に答える 1

2

あなたが探しているのは、おそらく次のように使用できる IInfo インターフェイスです。

Exec.Info.Func['B'].Call([])

http://code.google.com/p/dwscript/wiki/FirstSteps (関数まで下にスクロール) にはさらにいくつかのサンプルがあり、単体テスト (特に UdwsUnitTests、CallFunc メソッドを参照) にもいくつかの使用コードがあります。

IInfo は、Delphi 側で RTTI のクエリ、関数の呼び出し、変数の直接取得/設定、スクリプト側オブジェクトのインスタンス化などを行うための主要な方法として機能します。ただし、そのサンプル コードのほとんどは現在単体テストにあります。

于 2011-05-12T04:17:27.567 に答える