2013-01-09 24 views
6

Được rồi, tôi hoàn toàn mới đối với DWScript. Bây giờ tôi bị mê hoặc bởi khả năng của nó, nhưng mặc dù tôi đọc tất cả các trang trong wiki kèm theo và câu hỏi/câu trả lời ở đây tôi vẫn không thể tìm được cách để trích xuất kết quả sau khi hàm được gọi từ Delphi như sau:DWScript: làm thế nào để tôi nhận được kết quả sau khi gọi

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

và sau đó tôi bị kẹt: exec.result.toString không cho tôi biết gì. Miễn là tôi thấy tôi không có Result trong đối tượng exec và đó là lý do tại sao khi xóa các mục khỏi ngăn xếp tập lệnh, kết quả sẽ bị xóa và bị mất. Xin tư vấn cho tôi về cách thích hợp để thực hiện nhiệm vụ đơn giản này là gì?

+0

Chào mừng bạn đến với Stack Overflow. Thật tuyệt khi bạn tìm thấy câu trả lời cho câu hỏi của mình, nhưng vui lòng viết câu trả lời trong phần * trả lời * bên dưới. –

+0

Tôi hiểu, nó có ý nghĩa. Cảm ơn. – Nedko

Trả lời

7

Edit:

Như Eric Grange tuyên bố trong các ý kiến ​​dưới đây thực hành tốt nhất là như thế này:

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

câu trả lời gốc:

Vâng, tôi tìm thấy câu trả lời - kết quả mất tích nằm trong thuộc tính data của đối tượng trả lại IInfo:

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

Như bạn có thể đã thấy, tài liệu thực sự nằm trong hàng trăm trường hợp thử nghiệm đơn vị mà Eric đã tạo trong thư mục Test. Nó có vẻ khó khăn lúc đầu, nhưng mỗi trường hợp là khá đơn giản và sẽ thường xuyên cho bạn thấy con đường. –

+2

Đối với các kiểu đơn giản, bạn có các phương thức Value và ValueAsXxx. Mảng Dữ liệu [] dành cho các trường hợp phức tạp hơn hoặc khi bạn muốn truy cập trực tiếp vào các biến thể. –

+0

Btw, nó cũng được ghi lại trong http://code.google.com/p/dwscript/wiki/FirstSteps, trong đoạn "Chức năng" –

Các vấn đề liên quan