2013-01-09 51 views
6

好的,我對DWScript是全新的。現在我對它的能力着迷,但是儘管我在這裏閱讀了附帶的維基百科中的所有頁面和問題/答案,但我仍然無法找到一種方法來在Delphi中調用函數之後提取結果,如下所示:DWScript:如何在調用後獲得結果

func := m_dwsExec.info.Func[funcname]; 
    func.call(params); 

然後我卡住了:exec.result.toString什麼也沒給我。只要我看到exec對象中沒有Result,這就是爲什麼從腳本堆棧清除項目時結果被刪除並丟失的原因。請告訴我什麼是做這個簡單任務的正確方法?

+0

歡迎來到Stack Overflow。很好,你找到了你的問題的答案,但請在下面的答案*部分寫下答案。 –

+0

我明白了,這很有道理。謝謝。 – Nedko

回答

7

編輯:

正如埃裏克·格蘭奇在下面的最佳實踐的註釋中規定是這樣的:

func := m_dwsExec.info.Func[funcname]; 
    info := func.call(params); 
    funcresult := info.ValueAsString; //or Value, ValueAsInteger, etc. 

原來的答覆:

嗯,我找到了答案 - 丟失的結果位於在data物業的退貨IInfo物品:

func := m_dwsExec.info.Func[funcname]; 
    info := func.call(params); 
    funcresult := info.data[0] 
+2

正如您可能已經看到的,真實的文檔位於Eric在Test文件夾中創建的數百個單元測試用例中。起初看起來令人望而生畏,但每個案例都非常簡單,並會經常向您展示。 –

+2

對於簡單類型,您可以使用Value和ValueAsXxx方法。 Data []數組適用於更復雜的情況,或者您希望直接訪問變體。 –

+0

順便說一句,它也記錄在http://code.google.com/p/dwscript/wiki/FirstSteps,在「函數」段落 –