当全局定义 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 源上运行。