क्या डेल्फी 5 में लिखे गए ActiveX डीएल से एमडीआई बाल विंडो बनाने और डेल्फी एक्सई विंडोज क्लाइंट एप्लिकेशन से बनाए गए एमडीआई पैरेंट विंडो में एम्बेड करने का कोई तरीका है? यदि नहीं, तो व्यवहार की नकल करने का कोई तरीका है?मैं डेल्फी 5 ActiveX डीएलएल से एमडीआई बाल विंडो कैसे बना सकता हूं, और इसे डेल्फी एक्सई एमडीआई माता-पिता में एम्बेड कर सकता हूं?
पृष्ठभूमि
वहाँ डेल्फी 5. में पूरी तरह से लिखा एक आवेदन आवेदन का मुख्य रूप एक एमडीआई माता पिता खिड़की है। आवेदन में अन्य सभी रूप एमडीआई बाल रूप हैं, और उनमें से प्रत्येक एक ActiveX लाइब्रेरी से बनाया गया है। अभिभावक एप्लिकेशन ActiveX बनाता है, जिसके बाद ActiveX इंटरफ़ेस की विधि कॉल होती है। इस विधि से एक फॉर्म बनाया गया है और यह फॉर्म स्टाइल fsMDIChild पर सेट है। इस बिंदु पर फॉर्म एमडीआई माता-पिता का एक एमडीआई बच्चा है। यह काम करता है क्योंकि रनटाइम पैकेजों का उपयोग कर एप्लिकेशन और ActiveX लाइब्रेरी दोनों संकलित किए जाते हैं। नतीजतन, सभी रूपों में टीएप्लिकेशंस का एक ही उदाहरण साझा किया जाता है।
समस्या
आवेदन बहुत बड़ा है, और डेल्फी 2010 या डेल्फी XE के लिए चले जाना चाहिए। यह शानदार होगा अगर आवेदन को पहले माइग्रेट करके व्यवस्थित रूप से माइग्रेट किया जा सकता है, और फिर एक समय में ActiveX लाइब्रेरी माइग्रेट कर रहा है (उनमें से लगभग 50 हैं)।
समस्या यह है कि अगर सांत्वना आवेदन XE में संकलित किया गया है, यह अब एक ही TApplication उदाहरण का उपयोग करेंगे के रूप में उन पुस्तकालयों अभी भी डेल्फी में संकलित है 5.
यहां तक कि अगर ActiveX पुस्तकालय में रूपों नहीं किया जा सकता सच एमडीआई बाल खिड़कियां, ऐसा लगता है कि मैं ActiveX से बनाए गए फॉर्म के हैंडल को वापस करने में सक्षम होना चाहिए और इसे मुख्य रूप से पकड़ सकता हूं और फॉर्म को एक एमडीआई बच्चा बना सकता हूं। मैं घटनाओं को संभालने के लिए अपनी खुद की परत बना सकता था।
कोई विचार?
अद्यतन: वर्तमान में इस एप्लिकेशन के साथ लिया जा रहा दृष्टिकोण यह है कि इसे एमडीआई से एसडीआई इंटरफेस में माइग्रेट किया जा रहा है। डेल्फी XE एप्लिकेशन से डेल्फी 5 ActiveX DLL से TForms को तुरंत चालू करना पूरी तरह से संभव है, जब तक कि प्रत्येक डीएलएल का पहला रूप अपने डेटा (लोडिंग, सेविंग, अतिरिक्त फॉर्म प्रदर्शित करना आदि) का ख्याल रख सके। समस्या मूल एमडीआई डिजाइन रखने में थी। यदि एसडीआई डिज़ाइन स्वीकार्य साबित होता है, तो एमडीआई समाधान की कोई आवश्यकता नहीं होगी। फिर भी, अगर कोई जानता है कि एमडीआई समाधान कैसे पूरा किया जाए, तो मैं जानना चाहता हूं।
आप शायद एमडीआई बच्चे रूपों XE ऐप्लिकेशन में बनाए गए में एक्टिवेक्स पुस्तकालय से रूपों एम्बेड कर सकता है ... (फिर से parenting XE instantiated रूपों में एक्टिवेक्स रूपों - और परिवर्तन नहीं है Activex रूपों 'फॉर्म शैली) –