Delphi Web Script:执行脚本后访问变量

时间:2011-05-18 14:52:56

标签: delphi dwscript

想象一下这个剧本:

var s = TStrings.Create;
s.Add('Line 1');
s.Add('Line 2');

procedure MyProc;
begin
  if s.count = 2 then
  // ...
end;

当脚本运行时,它会创建变量“s”。现在我想在脚本完成后调用“MyProc”:

...
Exec := Program.CreateNewExecution;
Exec.BeginProgram;
Exec.RunProgram(0);
if Exec.ProgramState in [psRunning, psRunningStopped] then
begin
  Func := Exec.Info.Func['MyProc']; 
  Func.Call([]);
  Exec.EndProgram; 
end;

从MyProc访问“s”时出错。我假设DWS的垃圾收集器已经释放了stringlist。这是正确的吗?我可以做些什么来让“s”活着吗?

1 个答案:

答案 0 :(得分:2)

在调用EndProgram之前,不应该清除该变量。

可以解释您的问题的一件事是,如果您的脚本首先没有编译而没有错误(请检查Program.Msgs,它应该包含错误)。

相关问题