У меня есть такой DWScript
var Outputter: TOutputter;
procedure OutputterTester;
begin
Outputter.Print;
end;
TOutputter (это всего лишь пример сложного класса) объявлен и создан в коде Delphi и доступен для DWScript через Rtti.
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 экземпляр TOutputter без части инициализации.
Спасибо за помощь!