当全局定义IdwsProgram和IdwsProgramExecution变量时,我得到以下EdwsActivePrograms异常:
TDelphiWebScript instance "dws" still has 1 active IdwsProgram instance(s)
根据以下示例重现步骤:启动应用程序,按下Button1,然后按下Button2,最后关闭应用程序。关闭应用程序时会弹出异常。
var
prog : IdwsProgram;
exec : IdwsProgramExecution;
procedure TForm1.Button1Click(Sender: TObject);
begin
prog := dws.Compile('begin'#13#10'end;');
if prog.Msgs.Count = 0 then
exec := prog.BeginNewExecution;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
exec.EndProgram;
end;
在上面的示例中, dws 是表单上删除的TDelphiWebScript组件。我的目标是在应用程序中重用IdwsProgramExecution实例。在Delphi 10.1和最新的DWScript源上运行。