2013-08-29 46 views
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,沒有任何東西。

+0

您可以將完整的代碼發佈到您的表單和您的腳本,或至少一個完整的,可編譯的例子,將展示此行爲?我看到的所有東西都看起來像它應該工作,但是如果我有實際的代碼運行,我可以測試它,看看發生了什麼。 –

回答

1

這已由DWS船員修復。問題在幾小時內報告和修復。真棒。

+0

我無法弄清楚發生了什麼,所以我給Eric發了郵件,然後他修好了。 :) –