में नामस्थान मेरे पास दो बीपीएल पैकेज हैं: कोर और बिजनेस, एक एप्लिकेशन द्वारा उपयोग किया जाता है। Core.bpl में TUser क्लास के साथ यूनिट User.pas शामिल है। Core.bpl में टीयूसर में केवल दो आधार फ़ील्ड हैं: लॉगिन और पासवर्ड। मैं बिजनेस पैकेज में नए क्षेत्र के साथ टीयूसर क्लास का विस्तार करना चाहता हूं: UserName। और मैं बिजनेस यूनिट को मूल इकाई के रूप में नामित करना चाहता हूं: User.pas।डेल्फी XE2
तो, मैं Business.bpl में एक नई इकाई User.pas बनाता हूं और वहाँ TUser क्लास रखता हूं जो Core.bpl से TUser को बढ़ाता है। अब मुझे TUser को Core.bpl और TUser से Business.bpl से विभाजित करने की आवश्यकता है। और मुझे यहां "नामस्थानों की शक्ति" का उपयोग करने की आवश्यकता है :)
मैंने Embarcadero doc page पढ़ा है। वे कहते हैं कि कोई नामकरण के साथ पैकेज के लिए डिफ़ॉल्ट नेमस्पेस सेट कर सकता है, उदा। Base.Core। मैंने अपने पैकेज को Base.Core.bpl और Extra.Business.bpl के रूप में नामित किया। और संकलित फाइलों का नाम दिया गया है। लेकिन उनमें से सभी इकाइयां अभी भी नामित हैं जैसे कि वे पहले थे: User.pas -> User.dcu।
अब मुझे मॉड्यूल में दो क्लास टीयूसर मिला है User.pas: पैकेज में एक बेस Base.Core.bpl, पैकेज में अन्य Extra.Business.bpl।
unit User;
interface
uses
Base.User;
type
TUser = class(Base.User.TUser)
end;
की तरह अतिरिक्त दिखता में User.pas लेकिन जब मैंने उसे संकलित करने के लिए चाहते हैं, मैं एक खिड़की मिल गया है: "। उपयोगकर्ता को निकालें यूनिट (रों) उपयोगकर्ता आवश्यक पैकेज बेस में पाए गए।"
बेस.यूसर से नए टीयूसर को प्राप्त करने के लिए मैंने क्या किया है। उदाहरण के लिए जावा में ऐसा हो सकता है, उदाहरण के लिए?
पीएस बस मामले में, मैं डेल्फी XE2 आईडीई का उपयोग करता हूं।
यदि आप इस तरह के नोटेशन का उपयोग करना चाहते हैं, तो आप उन्हें 'यूनिट बेस.उसर' और 'यूनिट बिजनेस.यूसर' के रूप में नामित नहीं करना चाहिए? –
कोर और व्यवसाय में कई इकाइयां हैं ... और वे सभी एसवीएन में हैं :(उन सभी का नाम बदलना आखिरी तरीका है ... हो सकता है, कोई इसे आसान कर सकता है? – omickron
मैं आपके साथ हूं। प्रलेखन एक बात कहता है। लेकिन कार्यक्रम पूरी तरह से अलग व्यवहार करता है। –