2010-09-07 12 views
19

कैसे सेट करें परियोजना विकल्पों में "निर्देशिका/कंडीशनर" और पर्यावरण विकल्पों में "लाइब्रेरी" पथ को कैसे सेट करें? डेल्फी इन बहुत महत्वपूर्ण सेटिंग्स के बारे में ज्यादा कुछ नहीं कहता है। मेरे वीसीएल के बीच गलत निर्भरताओं के कारण मेरे पास सभी तरह की अजीब त्रुटियां हैं।सही ढंग से "निर्देशिकाएं/कंडीशनर" और "लाइब्रेरी" पथ

1.

मैं एक पैकेज ThirdPartyPackages_D7.dpk बुलाया में 3 पार्टी नियंत्रण के एक बड़े सेट विलय कर दिया है। यह तब उपयोगी होता है जब मैं डेल्फी को पुनर्स्थापित करता हूं क्योंकि मुझे उन सभी तृतीय पक्ष वीसीएल को दोबारा स्थापित करने की आवश्यकता नहीं है।

फिर, मेरे पास MyControls_D7.dpk में मेरा नियंत्रण है जो थर्डपार्टी पैकेज वीसीएल पर निर्भर करता है। मेरे पास एक और पैकेज BlgPackage.dpk है जो MyControls पर निर्भर करता है।

श्रृंखला के अंत में मेरा आवेदन (डीपीआर प्रोजेक्ट) है जो BlgPackage में नियंत्रण का उपयोग कर रहा है।

ThirdPartyPackages.dpk -> MyControls.dpk -> BlgPackage.dpk -> MyApplication.dpr 

जब मैं बदल/दूसरा पैकेज (MyControls.dpk) के लिए कुछ संपादित करें और डीपीआर आवेदन का निर्माण, यह काम करता है। संकलक उस पैकेज में किए गए परिवर्तनों को देखता है। हालांकि, अगर मैं प्रोजेक्ट को बंद करता हूं और ब्लगपैकेज को संकलित और संकलित करता हूं, तो यह एक बुरा संदेश फेंकता है जो xyz को MyControls में नहीं पाया जा सकता है क्योंकि मैं इसे हटा देता हूं (मैंने MyControls 'इकाइयों को आईडीई में एप्लिकेशन की इकाइयों के साथ समानांतर में लोड किया है)। ऐसा लगता है कि एप्लिकेशन का निर्माण केवल डीसीयू फाइलों को सभी प्रयुक्त पैकेजों के लिए रीफ्रेश करता है लेकिन डीसीपी/बीएलपी फाइलों के लिए नहीं।

मैं आईडीई में संकुल को स्पष्ट रूप से लोड किए बिना और उन्हें बनाने के बिना संकुल में कोड कैसे लिखूं और संकलित करूं? (नोट: मैं एक बुरा बग कि एक ही समय में परियोजनाओं/पैकेज (* .bpg) के एक समूह लोड करने के लिए आईडीई को पुन: प्रारंभ बिना मुझे परियोजनाओं के बीच स्विच करने की अनुमति नहीं है या है।)

2.

एक और समस्या यह है कि मैं अपने फ़ोल्डर में पैकेज के संकलित फ़ाइलों (डीसीपी/बीपीएल/डीसीयू) को स्टोर करना चाहता हूं (उदाहरण के लिए c: \ MyProjects \ Blg)।
यदि मैं BlgPackage पैकेज के "आउटपुट निर्देशिका" और "डीसीपी आउटपुट निर्देशिका" बॉक्स को अपने फ़ोल्डर में सेट करता हूं, न केवल इसकी बीपीएल/डीसीयू/डीसीपी फाइलें संग्रहीत की जाएंगी बल्कि बीपीएल/डीसीपी फाइलें भी संग्रहित की जाएंगी MyControls के वहाँ संग्रहीत किया जाएगा। मैं प्रत्येक पैकेज की बाइनरी फ़ाइलों को एक अलग फ़ोल्डर में कैसे रख सकता हूं?


डेल्फी 7, ​​विन XP, सभी परियोजनाओं "के पुनर्निर्माण की जरूरत के रूप में" के लिए

उत्तर

1

मेरा समाधान (थोड़े गंदा है, लेकिन हे यह काम करता है):

मैं एक ही पैकेज (एक सुपर पैकेज) में सभी 3 पार्टी libraries.controls डाल दिया। मैंने अपने सभी नियंत्रण एक ही पैकेज में रखे।

अब, जब मैं संकुल को एक अलग पीसी पर माइग्रेट करता हूं तो मुझे दो फ़ोल्डर्स कॉपी/पेस्ट करना और दो पथ सेट करना है।

मेरे लिए काम करता है - अन्य इसके साथ सहमत नहीं हो सकते हैं और मैं उन्हें दोष नहीं दे सकता। मैं बोर्लैंड/एम्बरकाडेरो से 'नरक डिजाइनर' को दोषी ठहराता हूं। यदि आप स्टैक ओवरफ्लो को देखते हैं तो आप देखेंगे कि अब तक कोई भी इस के लिए एक शानदार समाधान प्रदान नहीं करता है।

4
  1. आप स्पष्ट रूप संकलन चाहिए संकुल सेट - बस पैकेज फ़ाइलें संकलन नहीं पर्याप्त है और जैसा कि आप समस्याओं को जन्म देता देखा है । आधुनिक डेल्फी संस्करणों में आप एक प्रोजेक्ट समूह बना सकते हैं (डेल्फी 7 के बारे में निश्चित नहीं है) जिसमें एप्लिकेशन और पैकेज शामिल हैं जिन्हें आप एप्लिकेशन के साथ विकसित करना चाहते हैं, और आप आसानी से उनके बीच स्विच कर सकते हैं और एप्लिकेशन को बंद/दोबारा खोलने के बिना संकुल को संकलित कर सकते हैं ।

  2. BlgPackage MyControls पैकेज सूत्रों के एक एक्सेस ("लाइब्रेरी" पथ के माध्यम से या एक ही निर्देशिका का उपयोग करके), यह केवल पहले से ही संकलित MyControls पैकेज, MyControls से किसी और फ़ाइलों तक पहुँचने चाहिए नहीं होना चाहिए हर बार जब आप BlgPackage निर्माण संकलित किए जाते हैं और संकलित फ़ाइलें BlgControls DCU निर्देशिका में जमा हो जाती है


जोड़ा

"पुस्तकालय" पथ संकलित फ़ाइलों तक ले जाना चाहिए (.dcp, .dcu) और (यदि आवश्यक हो) संसाधन फ़ाइलें (.res, .dfm) केवल - यह उन अनुप्रयोगों और संकुलों को संकलित करने के लिए पर्याप्त है जिन्हें "MyControls" पैकेज की आवश्यकता होती है। आप सीधे पैकेज सेटिंग्स में संकलित फ़ाइलों के लिए निर्देशिका सेट कर सकते हैं, और आपको उसी निर्देशिका में संसाधन फ़ाइलों की प्रतिलिपि बनाना चाहिए (यदि आपको उनकी आवश्यकता है)। इस निर्देशिका को "लाइब्रेरी" पथ में शामिल किया जाना चाहिए, अन्यथा आप "लाइब्रेरी" पथ में पहले से मौजूद निर्देशिका का उपयोग कर सकते हैं।

"लाइब्रेरी" पथ स्रोत फ़ाइलों (.pas) का नेतृत्व नहीं करना चाहिए यदि आप नहीं चाहते हैं कि जब भी आप अपनी BlgPackage या किसी अनुप्रयोग को "MyControls" पैकेज की आवश्यकता हो, तो संकलित किया जाए।

+0

@ सर्ग-मुझे नहीं लगता कि नो 2 काम करेगा।डेल्फी 7 सहायता यह कहती है: "यदि आप लाइब्रेरी पथ पर फ़ाइल के साथ अपना पैकेज बनाने का प्रयास नहीं करते हैं, तो आपको एक कंपाइलर त्रुटि प्राप्त होगी"। इसलिए, यदि मैं लाइब्रेरी से अपना रास्ता हटा देता हूं तो मैं अपने पैकेज को संकलित नहीं कर पाऊंगा। – Ampere

+0

मैंने ऐसा किया और अब मैं परियोजना को संकलित नहीं कर सकता। मुझे डीसीयू में से एक नहीं मिला। वह डीसीयू MyControls से संबंधित है। यह उसी फ़ोल्डर में स्थित है जहां MyControls PAS फ़ाइलें हैं। – Ampere

+0

@Altar - .pcu को उसी फ़ोल्डर में संग्रहीत करना .pas एक खराब अभ्यास है और इससे बचा जाना चाहिए। डीसीयू को "लाइब्रेरी" पथ के माध्यम से उपलब्ध होना चाहिए, जबकि स्रोत (.pas) आमतौर पर नहीं होते हैं। किसी भी मामले में आप डीसीयू की प्रतिलिपि बना सकते हैं जो मैन्युअल रूप से "लाइब्रेरी" पथ के माध्यम से उपलब्ध फ़ोल्डर में समस्याएं उत्पन्न करता है, अगर किसी कारण से आप पैकेज विकल्पों में DCU पथ सेट नहीं करना चाहते हैं। – kludg

3

मैं तीसरे पक्ष के घटकों और डेल्फी को पुनर्स्थापित करने के लिए बहुत आसान तरीका उपयोग करता हूं।

  • ओपन regedit और [HKEY_LOCAL_MACHINE/सॉफ्टवेयर/Borland/डेल्फी/XXX] संस्करण और निर्यात पूरे शाखा जहां xxx है पाते हैं।
  • फ़ाइल खोलें और LMKEY, LMLIC को हटाएं।
  • कॉपी C: \ Program Files \ बोर्लेन्ड \ डेल्फी x \ परियोजनाओं \ किसी अन्य स्थान बीपीएल फ़ोल्डर
  • कॉपी C: \ Program Files \ बोर्लेन्ड \ डेल्फी x \ किसी अन्य स्थान
  • पुनर्स्थापित डेल्फी किसी भी अपडेट सहित आयात और GExpert
  • आयात पहले से सहेजी गई रजिस्ट्रियों
  • पुनर्स्थापित बीपीएल और आयात फ़ोल्डर

और whoala, डेल्फी सभी 3 partie घटकों और आईडीई सेटिंग्स के साथ वापस आ गया है। केवल सीमा यह है कि सभी घटकों को डेल्फी को पुनर्स्थापित करने से पहले और बाद में उसी फ़ोल्डर में रहना चाहिए।

यह टीमसोर्स सेटिंग्स को भी पुनर्स्थापित करता है। यदि आप विंडोज़ को भी पुनर्स्थापित कर रहे हैं, तो विंडोज उपयोगकर्ता को पहले उपयोगकर्ता नाम के साथ बनाना सुनिश्चित करें।

+0

मैं वर्षों से इस 'हैक' का उपयोग कर रहा हूं। फिर भी धन्यवाद। +1 के रूप में अन्य इसका उपयोग कर सकते हैं। पीएस: एचकेसीयू कुंजी (उसी स्थान:/सॉफ़्टवेयर/बोर्लैंड/डेल्फी/xxx) के बारे में मत भूलना। मुझे लगता है कि एलएमकेई एचकेएलएम है लेकिन एलएमएलआईसी क्या है? – Ampere

+0

एलएमकेई और एलएमएलआईसी डेल्फी के बारे में लाइसेंस जानकारी हैं और यदि आप उन्हें भी बहाल करते हैं तो डेल्फी को लगता है कि यह लाइसेंस प्राप्त नहीं है या ऐसा कुछ नहीं है। –

संबंधित मुद्दे