私はこのようなDWScriptを持っています
var Outputter: TOutputter;
procedure OutputterTester;
begin
Outputter.Print;
end;
TOutputter(複雑なクラスの単なる例です)は、デルファイコードで宣言および作成され、Rttiを介してDWScriptに公開されます。
TOutputter = class
procedure Print;
end;
コンパイルされたスクリプトをいくつかのインスタンスに使用したいのですが、現在のインスタンスにリンクする値Outputterを変更します。次のコマンドでスクリプト変数にアクセスできることを知っています。
var Exec : IdwsProgramExecution;
...
AVar := Exec.Info.Vars['Outputter'].Value;
ただし、値はVariantであるため、オブジェクトを割り当てることはできません。どうすれば値を変更できますか?私が最初に次のようなスクリプトでクラスを作成した場合:
procedure Init;
Outputter := TOutputter.Create;
end;
Exec.Info.Vars ['Outputter']。ScriptObj.ExtObjectにTOutputterの任意のインスタンス(delphiコードで作成)を割り当て、Outputterを介してスクリプトコードでそれらにアクセスできます。しかし、私はinit部分なしでTOutputterのデルファイコードで作成されたインスタンスを割り当てたいと思います。
助けてくれてありがとう!