2013-02-07 39 views
5

ứng dụng delphi của tôi chạy các kịch bản sử dụng JvInterpreter (từ dự án Jedi).thời gian chạy đánh giá các giá trị trong DelphiWebScript

Một tính năng tôi sử dụng là đánh giá thời gian chạy của biểu thức.
Script Ví dụ:

[...] 
ShowMessage(X_SomeName); 
[...] 

JvInterpreter không biết X_SomeName. Khi giá trị của X_SomeName được yêu cầu, trình thu thập dữ liệu gọi hàm gọi lại OnGetValue của nó. Điều này trỏ đến một hàm tôi xử lý. Ở đó tôi tra cứu giá trị của X_SomeName và trả về nó. Sau đó, JvInterpreter gọi ShowMessage bằng giá trị mà tôi đã cung cấp.

Bây giờ tôi xem xét chuyển sang DelphiWebScript vì nó có một debug giao diện phù hợp và cũng nên nhanh hơn JvInterpreter.

Vấn đề: Tôi không tìm thấy bất kỳ cách rõ ràng để thực hiện những gì JvInterpreter làm với OnGetValue/chức năng OnSetValue của nó, mặc dù.

X_SomeName cần được xem xét (và thực sự là, phần lớn thời gian) một biến được xử lý bởi các ứng dụng máy chủ.

Bất kỳ ý tưởng nào?

Cảm ơn!

+0

Bạn đã cân nhắc biến biến này thành một hàm gọi lại ứng dụng của bạn? Chắc chắn bạn bị mất hành vi "Set" nhưng ít nhất một nửa công việc được thực hiện. – Nedko

+0

Tôi có - sẽ không hoạt động, mặc dù. "SomeName" -Bảng của X_SomeName có thể là bất cứ điều gì, vì vậy tôi không thể tuyên bố nó lên phía trước. Đó là lý do tại sao tôi cần đánh giá thời gian chạy. –

Trả lời

1

Bạn có thể làm điều đó thông qua các cơ chế mở rộng ngôn ngữ, trong đó có một phương pháp FindUnknownName cho phép đăng ký ký ngay tại chỗ.

Nó được sử dụng trong bản demo mô-đun lib asm và bạn cũng có thể kiểm tra trường hợp kiểm tra "AutoExternalValues" mới trong ULanguageExtensionTests, nó sẽ gần gũi hơn với những gì bạn đang theo dõi.

+0

Tài liệu là khủng khiếp, do đó tôi mất một lúc để tìm ra cách sử dụng nó, nhưng đây chính xác là những gì tôi đang tìm kiếm. Cảm ơn! –

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