2010-05-29 15 views
5

डायलॉग, स्ट्रिंगयूल्ट इत्यादि जैसे मानक वीसीएल फाइलों के लिए यूनिट फाइलों को किसी परियोजना डीपीआर-फाइल में कभी संदर्भित नहीं किया जाता है। लेकिन मुझे डीपीआर-फाइल का संदर्भ कब जोड़ना चाहिए? अब मेरे पास अपने स्रोतों का स्रोत स्रोत और स्रोत है।मुझे डेल्फी परियोजना में फ़ाइल संदर्भ कब जोड़ना चाहिए?

रावेरपोर्ट, डेवेक्सप्रेस, इंडी, नोस्टिस आदि के लिए स्रोत फ़ाइलों के बारे में क्या? मैं जितना संभव हो सके तेज़ कोडेन्सइट चाहता हूं, लेकिन निश्चित रूप से मैं डीपीआर-फाइल में ब्लोट नहीं जोड़ना चाहता हूं। मैं डेल्फी 2007

संबंधित समस्या के लिए यह question भी देखें।

सादर

उत्तर

7

मैं हमेशा अपनी सभी कोड इकाइयों को जोड़ता हूं जो प्रोजेक्ट डीपीआर उपयोग खंड में उपयोग करता है। वीसीएल इकाइयों और तीसरे पक्ष के पुस्तकालयों से इकाइयों को केवल आवश्यकतानुसार जोड़ा जाता है। परियोजना के पुस्तकालय पथ में केवल वीसीएल और तृतीय पक्ष पुस्तकालयों के पथ शामिल हैं।

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

यह आपकी सहायता करता है जब आपके पास अलग-अलग परियोजनाओं के लिए अलग-अलग सामग्री के साथ एक ही यूनिट नाम होता है। साझा इकाई द्वारा प्रयुक्त प्रोजेक्ट विशिष्ट कोड के लिए उपयोगी। साझा इकाई बस "यूनिट 1" का उपयोग करती है और डीपीआर कहता है कि कौन सा। लाइब्रेरी पथ का उपयोग करने से अधिक स्पष्ट और कम त्रुटि प्रवण।

प्रोजेक्ट के डीपीआर में हमेशा इस्तेमाल किए गए सभी घटकों, वीसीएल या थर्ड पार्टी के पथ भी शामिल होते हैं। मेरे पर्यावरण विकल्पों में लाइब्रेरी पथ खाली है। इसमें वीसीएल के पथ भी शामिल नहीं हैं। यह थोड़ा ओट (शीर्ष पर) हो सकता है, लेकिन हे, यह जांचना आसान है ...

फिर से, यह निर्भरता को स्पष्ट करने में मदद करता है और जब आप पथ में अपने पर्यावरण चर का उपयोग करते हैं, उदाहरण के लिए $ (एमवीसी) \ ComponentName \ Source, यह आपके कोड को किसी अन्य (ओं) मशीन पर ले जाने में भी मदद करता है। केवल एक चीज जो मुझे करने की ज़रूरत है वह बहुत अधिक है (या इसे यूएसबी स्टिक पर ले जाएं) और डेल्फी आईडीई में एमवीसी पर्यावरण चर सेट करें। और मैं आश्वस्त रह सकता हूं कि जो भी अन्य मशीन पर स्थापित है, वह मेरी परियोजना के निर्माण में हस्तक्षेप नहीं करेगा।

1

आप केवल जरूरत है (और केवल चाहिए) आपके डीपीआर कि आपके डीपीआर वास्तव में उपयोग करता है में बातें करने के लिए संदर्भ जोड़ें। उदाहरण के लिए, आप (एक परियोजना है कि अपनी परियोजना के लिए अपने परीक्षण कोड शामिल हैं) आप GuiTestRunner या TextTestRunner (DUnit के लिए) जोड़ सकते हैं एक परीक्षण परियोजना लिख ​​रहे हैं, तो:

program MyTest; 

uses 
    all.pas in 'src\all.pas', 
    your.pas in 'src\your.pas', 
    project.pas in 'test\projects.pas', 
    units.pas in 'test\units.pas', 
    TextTestRunner; 

var 
    R: TTestResult; 

begin 
    R := TextTestRunner.RunRegisteredTests; 
    ExitCode := R.ErrorCount + R.FailureCount; 
end. 

अन्यथा इंडी या अन्य 3 पार्टी इकाइयों के साथ, , बस उन्हें उन इकाइयों में संदर्भित करें जो वास्तव में उनका उपयोग करते हैं।

+0

मेरी डीपीआर फ़ाइल में एक सापेक्ष शॉर्ट कोड सेक्शन है और यह बहुत अधिक इकाइयों का संदर्भ नहीं देता है। लेकिन परियोजना में इकाइयों और घटकों में अपनी स्रोत फाइलों की मात्रा बहुत बड़ी है। वर्तमान में डीपीआर के उपयोग खंड में 483 फाइलें शामिल हैं। मुख्य रूप से क्योंकि मुझे लगता है कि यह कोडिनसाइट की गति में सुधार करेगा।Http://stackoverflow.com/questions/763862/does-it-make-a-difference-if-i-clean-up-my-uses-clause-if-the-removed-units-are-s/764053 देखें # 764053 http://stackoverflow.com/questions/2776932/adding-files-to-the-dpr-file-vs-project-paths-in-delphi-2010/2777819#2777819 –

+1

मैं मानता हूं कि आपको केवल वही चाहिए जो आपको चाहिए डीपीआर में खुद का उपयोग करें। उस एकमात्र चीज के साथ सहमत न हों जो वहां होना चाहिए। जब आप अक्सर विभिन्न पुस्तकालयों और अपने कोड संस्करणों के साथ परियोजनाओं को स्विच करते हैं, तो आप पाएंगे कि डीपीआर में स्पष्ट निर्भरताएं आपको सिरदर्द से बचने में मदद करेंगी। –

+0

@ रोलैंड। डीपीआर में 483 संदर्भों की संख्या के बारे में चिंता न करें, हम अपनी मुख्य परियोजनाओं में से एक में 700 के करीब आ रहे हैं, और अभी भी जोड़ रहे हैं ... –

1

मैं जितना संभव हो .dpr में छोटी इकाइयों को जोड़ता हूं। ऐसा इसलिए है क्योंकि मुझे वहां हार्डकोडेड पथ डालना पसंद नहीं है, और सापेक्ष पथों के साथ कभी-कभी अजीब त्रुटियां भी होंगी (like described here) और मुझे कोड के चारों ओर स्थानांतरित करने के लिए अपेक्षाकृत मुक्त छोड़ देता है।

हालांकि मैं वास्तव में प्रोजेक्ट इंस्पेक्टर के माध्यम से इकाइयों को बहुत अधिक ब्राउज़ नहीं करता हूं, मैं इकाइयों को खोलकर ज्यादातर इकाइयों को ctrl-enter के साथ नेविगेट करता हूं। मेरे सहकर्मी को इसका बहुत उपयोग करना पड़ा, इसलिए यह माउस-खुश टीम के लिए संभव नहीं हो सकता है।

+0

मैंने आपके द्वारा दिए गए लिंक में वर्णित समस्याओं का कभी अनुभव नहीं किया है। किसी भी डेल्फी संस्करण में (डी 3 के बाद से) ... फिर फिर, शायद मैं भाग्यशाली हूं। –

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