2009-05-18 3 views
11

हर बार जब मैं अपनी परियोजना में एक नया फॉर्म जोड़ता हूं, तो यह उपयोग खंड में बॉयलरप्लेट का एक बड़ा ग्लोप छोड़ देता है।मैं नए रूपों के लिए "उपयोग" बॉयलरप्लेट को कैसे कम करूं?

uses 
    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, 
    Dialogs; 

गंभीरता से, नियमित रूप से किसी भी चीज़ पर वेरिएंट यूनिट का उपयोग कौन करता है? मैं आम तौर पर विंडोज, संदेश, वेरिएंट, ग्राफिक्स और संवाद को हटा देता हूं और उन्हें कभी याद नहीं करता हूं।

यह किसी टेम्पलेट फ़ाइल से कहीं बाहर आ रहा है, लेकिन मुझे यह प्रतीत नहीं होता है। क्या किसी को पता है कि मैं टेम्पलेट कहां ढूंढ सकता हूं और इसे संपादित कर सकता हूं? मैं हाल ही में बदल गया है, तो मैं डी 200 9 का उपयोग कर रहा हूँ।

उत्तर

13

अनुसार संसाधन $ (बीडीएस) \ bin \ delphivclide * .bpl में स्थित है और "VCLIDECMD" नाम दिया गया है; आप इसे अपनी पसंद के संसाधन संपादक के साथ निकालें, संपादित करें और अपडेट कर सकते हैं (मैं Pelles C में शामिल एक की सिफारिश करता हूं)।

सी ++ बिल्डर उपयोगकर्ताओं के लिए, टेम्पलेट फ़ाइल bcbvclide * .bpl में "CPPVCLIDECMD" है।

यदि आप आरएडी स्टूडियो के स्थानीय संस्करण का उपयोग कर रहे हैं, तो उचित भाषा संसाधन फ़ाइलों (* .DE, * एफआर या * .जेए) देखें।

5

आप विंडोज और संदेश हटाकर कुछ भी नहीं बचा रहे हैं। ग्राफिक्स और डायलॉग आपके द्वारा फ़ॉर्म पर जो घटकों को छोड़ते हैं, उसके आधार पर वापस जोड़ा जा सकता है, और वे वैसे भी संदर्भ के लिए काफी उपयोगी हैं। संदेह है कि आप उन्हें हटाकर बहुत बचत कर रहे हैं। वेरिएंट को हटाने के लिए स्वतंत्र महसूस करें यदि आप उनका उपयोग नहीं कर रहे हैं (जो मैं सहमत हूं कि COM या डीबी विकास करने तक बहुत आम है)।

मुझे लगता है कि यह सब उपयोग खंड की सफाई में आपके उद्देश्य पर निर्भर करता है। प्रकार वास्तव में केवल एक ही है जो आपके आवेदन पर असर डाल सकता है।

जहां तक ​​डिफ़ॉल्ट टेम्पलेट बदल रहा है, मुझे विश्वास है कि यह एक पैकेज में है जो कहता है कि यदि आप टीएफओएम से उतर रहे हैं तो आप उन्हें प्राप्त करेंगे। आपको शायद एक पीएएस फ़ाइल को संशोधित करने और वीसीएल पैकेजों का पुनर्निर्माण करने की आवश्यकता होगी। बहुत कम लाभ के लिए बहुत सारे काम।

+0

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

+1

फॉक्स: हाँ, बिल्कुल। जिम: अगर मोरित्ज़ की विधि काम करती है, तो यह वास्तव में इतना अधिक काम नहीं करता है, और इसे केवल एक बार किया जाना होगा। –

5

मैं आम तौर पर प्रोजेक्ट को समाप्त करने के बाद cnPack के साथ आने वाले "उपयोग क्लीनर" का उपयोग करता हूं, यह आपको आपकी परियोजना में सभी अप्रयुक्त इकाइयों के लिए एक सूची देगा, क्योंकि आम तौर पर जब परियोजना समाप्त हो जाती है तो आपके पास उल्लिखित इकाइयों की तुलना में बड़ी अप्रयुक्त इकाइयां हो सकती हैं।

+1

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

+2

दिलचस्प बिंदु, लेकिन आईएमओ यदि आप एक इकाई के प्रारंभिकरण पर भरोसा कर रहे हैं जिसका वास्तव में कभी भी कहीं भी उपयोग नहीं किया जाता है, तो आपके कोड को रीफैक्टरिंग की आवश्यकता होती है। –

+0

@ मेसन: जरूरी नहीं है कि यह एक इकाई है जो स्वचालित रूप से कुछ उपयोगिता जैसे FastMM4 या एंड्रैस 'VclFixPack इकाई जैसे पैच को स्थापित करने के लिए उपयोग की जाती है। हमने Vista/Windows2008 पर चलते समय InitializeCriticalSectionEx द्वारा InitializeCriticalSection को कॉल को गतिशील रूप से प्रतिस्थापित करने के लिए उस चाल का उपयोग किया था। अनुमोदित, एक फॉर्म इकाई की तुलना में डीपीआर में होने की संभावना अधिक है। –

0

दरअसल, जिसने मुझे भी परेशान किया।

लेकिन फिर मैंने डिफ़ॉल्ट इकाइयों के साथ संकलित निष्पादन योग्य आकार की जांच की और फिर बिना उनके (चेक, संदेश, ग्रैपिक्स) की जांच की और आकार बहुत छोटा नहीं था।

Dialogs.pas कुछ किलोबाइट जोड़ता है, लेकिन मैं अक्सर Win API वाले पर डेल्फी वीसीएल संवाद का उपयोग करता हूं।

तो, मैं उन्हें

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

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