2
想象一下这个脚本:德尔福网页脚本:访问变量执行脚本后
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”活着吗?
FWIW示例代码已经添加到逐字的单元测试。 – 2011-05-31 06:25:12