मेरे पास डेल्फी में एक सेवा अनुप्रयोग है जो बहुत अच्छा काम करता है। यह वही करता है जो मैं चाहता हूं और सब खुश हैं। सब ठीक है जब तक कि मैं एक ही मशीन पर उस सेवा के दो (या अधिक) उदाहरण नहीं चलाता। चूंकि सेवा का नाम प्रोग्राम में (कोड की नाम संपत्ति के माध्यम से) कोड किया गया है, इसलिए मैं किसी भी दिए गए कंप्यूटर पर केवल एक बार सेवा स्थापित कर सकता हूं। यदि मैं रन-टाइम पर नाम संपत्ति को संशोधित करने का प्रयास करता हूं, तो सेवा तब तक प्रतिक्रिया नहीं देती जब तक कि नाम संपत्ति उसी समय पर सेट न हो जो डिज़ाइन समय के दौरान सेट की गई हो।क्या उसी डेल्फी सेवा एप्लिकेशन के कई उदाहरण स्थापित करना संभव है?
मैं इस जहाँ मैं कोड है कि सेवा नियंत्रण प्रबंधक के साथ सीधे बातचीत नहीं अलग इकाई (रों) में बाहर समझाया के सभी के लिए एक समाधान किया है। फिर मैं प्रत्येक उदाहरण के लिए एक अलग डेल्फी प्रोजेक्ट लिखता हूं जिसे मैं उस सेवा की चाहता हूं जिसमें स्वयं को लॉन्च करने के लिए पर्याप्त कोड है और मुख्य कोड चलाने शुरू करें।
इस विधि मेरी राय में, है, बदसूरत और निश्चित रूप से अक्षम है। यह दो उदाहरणों के लिए ठीक काम करता है, लेकिन फिर हमें तीसरे और चौथे की आवश्यकता होती है और ...
क्या कोई तरीका है कि मैं अपना कोड संशोधित कर सकता हूं ताकि मेरे पास केवल एक डेल्फी प्रोजेक्ट है जो कई को अपने आप इंस्टॉल और चला सकता है कुछ सरल रन-टाइम इनपुट (उदाहरण के लिए कमांड लाइन ध्वज) के साथ सेवा उदाहरण?
या शायद एक व्यापक प्रश्न: वहाँ एक "सही तरीके से" लक्ष्य को पूरा करने के लिए है?
यदि मैं ऐसा करता हूं, तो सेवा तब तक नहीं चलती जब तक कि ParamStr (2) आईडीई में ऑब्जेक्ट इंस्पेक्टर में नाम के लिए सेट किए गए मान के बराबर न हो। यदि ParamStr (2) अलग है, तो जब सेवा शुरू हो जाती है, तो यह एक सतत "प्रारंभ" स्थिति में जाती है और कभी निष्पादित नहीं होती है। –
क्षमा करें, यह आवश्यक चीज़ों का केवल एक हिस्सा है। इसे कॉल करने के लिए आपको ऑनस्टार्ट ईवेंट की भी आवश्यकता है। (यहां मेमोरी से काम करना!) –
मुझे यह सेवा लोडोडइन्फो विधि नहीं मिल रही है जिसका आप उपयोग कर रहे हैं। क्या यह एक मानक विधि है, या सिर्फ एक सुझाव लिखने का सुझाव है जो इस उदाहरण में कहलाता है कि इसका नाम क्या है? –