2
從以下腳本代碼中,我調用Delphi中的Run過程,該過程調用也在Delphi中的showmodal過程。 當從新創建的模態對話框中調用Button1Click()時,全局變量sl未被實例化。從模態對話框調用腳本函數給出「對象未實例化」
腳本代碼。
var sl : TStringList;
procedure Run();
begin
sl := TStringList.create();
ShowModal;
showMessage(sl.Text);
sl.free;
end;
procedure Button1Click();
begin
sl.Add('DWS');
end;
德爾福方面的代碼。
1)呼叫運行()
FExec := FCompiledScript.BeginNewExecution;
FExec.Info.Func['Run'].Call([]);
FExec.EndProgram;
2)的ShowModal評估和演示
Form1 := TForm1.Create(nil);
Form1.Exec := FExec;
Form1.ShowModal;
3)使用相同的IdwsProgramExecution對象
FExec.Info.Func['Button1Click'].Call([]);
在此從模態對話框調用Button1Click點我得到錯誤「對象未實例化」。關閉對話框後,我得到了showmessage,沒有任何東西。
您可以將完整的代碼發佈到您的表單和您的腳本,或至少一個完整的,可編譯的例子,將展示此行爲?我看到的所有東西都看起來像它應該工作,但是如果我有實際的代碼運行,我可以測試它,看看發生了什麼。 –