5

私の Delphi アプリケーションは、JvInterpreter (Jedi プロジェクトから) を使用してスクリプトを実行します。

私が使用する機能は、式の実行時評価です。
スクリプト例:

[...]
ShowMessage(X_SomeName);
[...]

JvInterpreter は X_SomeName を知りません。X_SomeName の値が必要な場合、スクリプト作成者はその OnGetValue コールバックを呼び出します。これは、私が扱う関数を指しています。そこで、X_SomeName の値を検索して返します。次に、JvInterpreter は、私が提供した値で ShowMessage を呼び出します。

DelphiWebScript には適切なデバッグ インターフェイスがあり、JvInterpreter よりも高速であるため、DelphiWebScript に切り替えることを検討しています。

問題: JvInterpreter がその OnGetValue/OnSetValue 関数で行うことを実装する明確な方法が見つかりませんでした。

X_SomeName は、ホスト アプリケーションによって処理される変数と見なす必要があります (実際にはほとんどの場合そうです)。

何か案は?

ありがとう!

4

1 に答える 1

1

これは、その場でシンボルを登録できる FindUnknownName メソッドを持つ言語拡張メカニズムを介して行うことができます。

これは asm lib モジュールのデモで使用されており、ULanguageExtensionTests で新しい「AutoExternalValues」テスト ケースを確認することもできます。これは、目的に近いはずです。

于 2013-03-19T16:35:28.957 に答える