2013-02-07 21 views
5

में मूल्यों का रन-टाइम मूल्यांकन मेरा डेल्फी एप्लिकेशन JvInterpreter (जेडीआई प्रोजेक्ट से) का उपयोग करके स्क्रिप्ट चलाता है।डेल्फी वेबस्क्रिप्ट

एक सुविधा जो मैं उपयोग करता हूं वह अभिव्यक्तियों का रनटाइम मूल्यांकन है।
स्क्रिप्ट उदाहरण:

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

JvInterpreter X_SomeName नहीं जानता है। जब X_SomeName के मान की आवश्यकता होती है तो स्क्रिप्टर अपने OnGetValue-Callback को कॉल करता है। यह एक फ़ंक्शन को इंगित करता है जिसे मैं संभालता हूं। वहां मैं X_SomeName के मान को देखता हूं और इसे वापस कर देता हूं। फिर JvInterpreter मेरे द्वारा प्रदान किए गए मान के साथ ShowMessage को कॉल करता है।

अब मैं डेल्फी वेबस्क्रिप्ट पर स्विच करने पर विचार करता हूं क्योंकि इसमें उचित डीबग-इंटरफ़ेस है और यह JvInterpreter से भी तेज होना चाहिए।

समस्या: जेवीइंटरप्रेटर अपने ऑनगेटवेल्यू/ऑनसेट वैल्यू फ़ंक्शन के साथ क्या करता है, इसे लागू करने के लिए मुझे कोई स्पष्ट तरीका नहीं मिला।

X_SomeName पर विचार किया जाना चाहिए (और वास्तव में, अधिकांश समय) एक चर जो मेजबान अनुप्रयोग द्वारा संभाला जाता है।

कोई विचार?

धन्यवाद!

+0

क्या आपने इस चर को एक ऐसा फ़ंक्शन बनाने पर विचार किया है जो आपके आवेदन पर वापस कॉल करता है? निश्चित रूप से आप "सेट" व्यवहार खो देते हैं लेकिन कम से कम नौकरी का आधा किया जाता है। – Nedko

+0

मेरे पास है - हालांकि काम नहीं करेगा। "कुछ नाम" - X_SomeName का हिस्सा कुछ भी हो सकता है, इसलिए मैं इसे आगे घोषित नहीं कर सकता। यही कारण है कि मुझे रन-टाइम मूल्यांकन की आवश्यकता है। –

उत्तर

1

आप भाषा एक्सटेंशन तंत्र के माध्यम से ऐसा कर सकते हैं, जिसमें FindUnknownName विधि है जो स्पॉट पर प्रतीकों को पंजीकृत करने की अनुमति देती है।

इसका उपयोग एएसएम lib मॉड्यूल डेमो में किया जाता है, और आप ULanguageExtensionTests में नए "ऑटोएक्सनेटवैल्यूज़" परीक्षण मामले को भी देख सकते हैं, जो आपके बाद के करीब होना चाहिए।

+0

प्रलेखन भयानक है, इस प्रकार मुझे इसका उपयोग करने के लिए कुछ समय लगा, लेकिन यह वही है जो मैं ढूंढ रहा था। धन्यवाद! –