2009-05-01 8 views
5

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

अद्यतन:

मैंने सोचा कि मैं अपने प्रश्न को स्पष्ट कर दूंगा। हमारे सभी मार्ग रिश्तेदार हैं, इसलिए हमारे पास कई शाखाएं हो सकती हैं जो सभी अपनी शाखाओं के भीतर कोड का संदर्भ लेती हैं। इसलिए मैं रिश्तेदार पथों के बारे में नहीं पूछ रहा हूं, लेकिन क्या इकाइयों को .dpr में होना चाहिए या खोज पथ का उपयोग करके उठाया जाना चाहिए, यही कारण है कि पहले पूछे जाने वाले प्रश्न मेरी आवश्यकताओं का उत्तर नहीं देते हैं। सभी को धन्यवाद

उत्तर

9

मेरे पास यह निर्धारित करने का एक बहुत ही बुनियादी तरीका है ... यदि कोड परियोजना के लिए विशिष्ट है (कहीं और उपयोग नहीं किया गया है) तो मैं इसे स्पष्ट रूप से शामिल करता हूं। सभी साझा कोड पुस्तकालय पथ से खींच लिया जाता है।

सादर, डॉन

+0

यहां एक ही तकनीक है, हालांकि यदि कोड प्रोजेक्ट के लिए विशिष्ट है, तो मैं प्रोजेक्ट के फ़ोल्डर में सबफ़ोल्डर बना देता हूं ताकि इसे सभी अच्छी तरह से समूहीकृत किया जा सके – BlackTigerX

+1

लाइब्रेरी पथ एक पर्यावरण सेटिंग है जबकि खोज पथ एक प्रोजेक्ट सेटिंग है। लाइब्रेरी पथ की बजाय खोज पथ का उपयोग करने से आपको अलग-अलग मशीनों पर एक ही प्रोजेक्ट बनाने में आसान समय मिल सकता है। बिल्ड मशीन को सटीक पर्यावरण सेटिंग्स की आवश्यकता नहीं है और केवल परियोजना के साथ पर्याप्त हो सकता है। –

+0

मैं आमतौर पर यह भी करता हूं, हालांकि मैं कभी-कभी लाइब्रेरी इकाई को स्पष्ट रूप से जोड़ता हूं क्योंकि नाम बदलने के लिए नाम बदलना और डी 2006 में संदर्भ ढूंढना (बाद के संस्करणों के बारे में नहीं पता) तब तक काम नहीं करेगा जब तक यह डीपीआर में न हो। –

0

साझा कोड विशिष्ट कोड बनाम एक अच्छा नियम है।

मैं VSSConnextion बहुत उपयोग करता हूं, इसलिए फ़ाइलों को जिन्हें आम तौर पर एक साथ जांचने की आवश्यकता होती है, स्वाभाविक रूप से उसी प्रोजेक्ट से संबंधित होती है।

4

मुझे नहीं लगता कि मैं उस समय की गिनती कर सकता हूं जिसने मुझे किसी ऐसे व्यक्ति की मदद की है जिसने पाया कि कंपाइलर को अपने खोज पथ पर किसी इकाई की डुप्लिकेट प्रतिलिपि मिल रही थी, जहां उन्हें यह खोजने की उम्मीद नहीं थी। वे समझ में नहीं आ रहे थे कि वे संपादक में अपना कोड क्यों बदल रहे थे (खोज पथ में नहीं मिली इकाइयों की एक प्रति पर) और आवेदन के व्यवहार में कोई बदलाव नहीं देख रहे थे। स्पष्ट रूप से यूनिट समेत और खोज पथ स्थापित करने का अर्थ यह नहीं है कि संकलक द्वारा प्राप्त इकाई की केवल एक प्रति हो सकती है।

+0

वे क्यों महसूस नहीं करेंगे कि न तो गटर में नीले रंग के बिंदु थे और न ही उस इकाई में कोई ब्रेकपॉइंट सेट नहीं किया जा सकता था जिसे वे संपादित कर रहे थे? – mghie

+2

ब्लू डॉट * * हैं, हालांकि सही जगहों पर जरूरी नहीं है। जब तक आप दौड़ते हैं तो ब्रेकपॉइंट ठीक दिखते हैं। यह स्पष्ट नहीं है कि आपने इसे पहले नहीं देखा है। –

1
  • मेरी पुस्तकालयों SVN में हैं, और मैं आमतौर पर परियोजना के सापेक्ष ../libraries पर के लिए बाहर उन्हें जाँच (उन्हें में शाखा) एक परियोजना। यह छोटे और बिंदु के डीआईआरएस के दायरे को बनाए रखता है।

  • असली स्रोत (.pas) में, पथ पूरी तरह से प्रतिबंधित हैं।

  • कोई परियोजना (केवल परियोजना प्रति, या वे सही मायने में सार्वभौमिक साझा कर रहे हैं सूत्रों का कहना है/घटकों) वैश्विक डेल्फी searchpath में संबंधित पथ

  • मैं हार्डकोडेड रास्तों के साथ स्रोत poluting से नफरत है, इसलिए मैं आमतौर पर केवल कुछ इकाइयों परियोजना, हमेशा सापेक्ष पथ के साथ। वीएसएस डब्ल्यू नहीं: \ ड्राइव विकल्प कृपया हैक! आम तौर पर ये वे इकाइयां हैं जो ढांचे के हिस्सों में खींचती हैं या दृश्य विरासत या फॉर्म प्रारंभिकरण के कारण आवश्यक होती हैं।

  • दुर्भाग्य से, संबंधित पथ डेल्फी के साथ खतरनाक हो सकता है, क्योंकि वे काम कर निर्देशिका, जो डेल्फी संवाद (जैसे ओपन) के अनुसार बदल सकते हैं के सापेक्ष हैं। समाधान सरल है, मुख्य परियोजना में एक अद्वितीय नाम के साथ एक फ़ाइल शामिल है।

0

डेल्फी दो बार के उन्नयन और नए कंप्यूटर के लिए अपने प्रोजेक्ट में दो बार जाने के बाद, मैंने सीखा है कि हार्ड-कोडेड पथ क्योंकि जड़ निर्देशिका बदलने के लिए करते हैं बुराई कर रहे हैं। संदेह तो अगर आप एक साझा परियोजना पर काम कर रहे हैं।

+0

सापेक्ष पथ (परियोजना के लिए) ठीक हैं, हालांकि। –

0

मुझे एक ही समस्या थी। ब्लू-डॉट्स जहां गटर में दिखाई नहीं दे रहा है।

सरल समाधान (में से एक):

मेनू> परियोजना> संकलक> विन्यास का निर्माण ... बजाय डीबग रिलीज करने के लिए निर्धारित किया है।

डेल्फी 2007

पुनश्च: ठीक है, मुझे सोचा मैं कोडिंग किया गया था। किसी ने एक नई सुविधा का अनुरोध किया था। :)

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