我有一个像这样的 DWScript
var Outputter: TOutputter;
procedure OutputterTester;
begin
Outputter.Print;
end;
TOutputter(只是复杂类的一个示例)在 delphi 代码中声明和创建,并通过 Rtti 暴露给 DWScript。
TOutputter = class
procedure Print;
end;
我想将编译后的脚本用于多个实例,但更改它链接到当前实例的值 Outputter。我知道我可以通过以下方式访问脚本变量:
var Exec : IdwsProgramExecution;
...
AVar := Exec.Info.Vars['Outputter'].Value;
但该值是一个变体,所以我不能分配一个对象。如何更改值?如果我首先在脚本中创建类,例如:
procedure Init;
Outputter := TOutputter.Create;
end;
我可以为 Exec.Info.Vars['Outputter'].ScriptObj.ExtObject 分配一个任意的 TOutputter 实例(在 delphi 代码中创建)并通过 Outputter 在脚本代码中访问它们。但是我想分配一个delphi代码创建的没有init部分的TOutputter实例。
谢谢你的帮助!