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