2009-04-08 8 views
10

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

उत्तर

6

एक और है, बल्कि बोझिल तरीके से उपयोग कर सकते हैं ..., है एक नक्शा फ़ाइल उत्पन्न करने के लिए, उसमें शामिल एक कार्यक्रम में उपयोग की जाने वाली सभी इकाइयों की एक सूची। How can I find all the units in my Delphi app?

4

क्या आपने Peganza Software से पास्कल विश्लेषक या मुफ्त सीमित संस्करण, इकरस को देखा है? वे "रिपोर्ट का उपयोग" करेंगे जो आपको बताएंगे कि कौन सा मॉड्यूल दूसरों का उपयोग करता है, जिससे आपको वह जानकारी देनी चाहिए जो आप बाद में कर रहे हैं।

मार्क

3

मैं कम से कम दो तरीके आप अपने सभी परियोजना में इस्तेमाल इकाइयों के एक दृश्य के

  1. Ctrl-Shift-बी वस्तु ब्राउज़र खुल जाता है पाने के लिए कोशिश कर सकते के बारे में पता। अगर मुझे गलत नहीं लगता है, तो आप यहां इस्तेमाल इकाइयों का एक दृश्य प्राप्त कर सकते हैं। मैं इस विधि के बारे में पूरी तरह से निश्चित नहीं हूं और इसे सत्यापित करने के लिए डेल्फी उपलब्ध नहीं है।
  2. Modelmaker का उपयोग करें; मॉडलमेकर आपको अपनी सभी इकाई निर्भरताओं के दृश्य जैसे पेड़ दे सकता है। अधिक जानकारी के लिए Visualizing existing code अनुभाग देखें।
0

UsgParse नामक एक (बल्कि पुरानी) उपयोगिता है। यह एक परियोजना द्वारा संदर्भित सभी इकाइयों का एक वृक्षदृश्य बनाता है।

मैं के माध्यम से NexusDB साइट पर एक प्रति पाया http://coding.derkeiler.com/Archive/Delphi/borland.public.delphi.thirdpartytools.general/2004-03/0231.html

स्रोत: http://www.nexusdb.com/downloads/USGParse/USGParse_src.zip

बाइनरी: http://www.nexusdb.com/downloads/USGParse/USGParse.zip

4

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

6

मैं GExperts परियोजना निर्भरता का उपयोग करता हूं।
"द्वारा उपयोग ..." के साथ, आप इकाइयों को शामिल कर सकते हैं लेकिन किसी के द्वारा उपयोग नहीं किया जा सकता है। लेकिन आप उपयोग खंडों में शामिल इकाई को नहीं देख सकते हैं जिसे हटाया जा सकता है जब उनके पास वास्तव में कोई कोड नहीं है।

यहाँ मदद है:


परियोजना निर्भरता

परियोजना निर्भरता विशेषज्ञ क्या इकाइयों के लिए एक विशेष इकाई का उपयोग करता है यह देखने के लिए सक्षम बनाता है, और बदले में क्या इकाइयों के लिए एक विशेष इकाई का उपयोग करें। जब यह विशेषज्ञ सक्रिय होता है, तो यह उपयोग खंडों के लिए सभी मौजूदा प्रोजेक्ट के स्रोत कोड को पार करता है और निर्भरताओं की एक सूची बनाता है। किसी विशेष इकाई के लिए निर्भरता जानकारी देखने के लिए, बाएं फलक में उस पर क्लिक करें। दाएं फलक में निर्भरता जानकारी होगी। अप्रत्यक्ष निर्भरता इकाइयां हैं जिनका उपयोग किसी विशेष इकाई की प्रयुक्त इकाइयों द्वारा किया जाता है।

आप टूलबार पर रीफ्रेश बटन पर क्लिक करके किसी भी समय निर्भरता जानकारी को रीफ्रेश कर सकते हैं और आप कॉलम हेडर पर क्लिक करके फ़ाइल प्रविष्टि को सॉर्ट कर सकते हैं।
alt text http://www.gexperts.org/tour/project%20dependencies.png


OTOH, तुम भी मुक्त Peganza's ICARUS एक अधिक विस्तृत रिपोर्टिंग उपकरण लेकिन कम इंटरैक्टिव के रूप में

1

सबसे आसान तरीका कार्यक्रम संकलन और जाँच जो .dcu संकलक द्वारा बनाया गया था के लिए है:

भी इस सवाल का जवाब देखें। एक अलग निर्देशिका में .dcu बनाने के लिए कंपाइलर सेट करना सुनिश्चित करें, उदाहरण के लिए c:\dcu। मैंने सरल उपयोगिता बनाई है जो प्रत्येक .dcu फाइलों के लिए .pas की खोज करता है जो एक कंपाइलर खोज पथ में हैं (जिसे .cfg, .dof या .bdsproject फ़ाइल से पढ़ा जा सकता है) में फ़ाइल।

25

डेल्फी डीबगर आपको दिखा सकता है कि कौन सी इकाइयां मॉड्यूल (एक्सई, डीएलएल या पैकेज) में संकलित की गई थीं। आप इसे मॉड्यूल दृश्य में देख सकते हैं (देखें | डीबग विंडोज | मॉड्यूल)। ऊपरी बाएं फलक में एक मॉड्यूल पर क्लिक करें, और निचला बायां फलक उस मॉड्यूल में बनाए गए सभी संकलन इकाइयों को दिखाएगा। यदि एक विशेष संकलन इकाई एकाधिक स्रोत फ़ाइलों (यानी एक .pas और a .inc फ़ाइल) से बना है, तो यह भी दिखाया जाएगा (जब आप COMP इकाई का विस्तार करते हैं)।

वैकल्पिक रूप से, आप डेल्फी कंपाइलर को प्रोजेक्ट संकलित करते समय --depends को पास करके उपयोग किए गए .dcus की एक सूची दिखा सकते हैं। यह एक .d फ़ाइल को .dcus (और .dcps) की सूची के साथ आउटपुट करेगा जो आवश्यक थे।

+5

आज कुछ नया सीख लिया: '--depends' :) मैंने हमेशा .dcu निर्देशिका को साफ़ किया, फिर संकलन के बाद .dcu निर्देशिका का 'dir/b' किया। डीबगर चाल भी साफ है! –

+1

कंपाइलर के कौन से संस्करण --depends स्विच के बारे में जानते हैं? – dummzeuch

+0

मैं हमेशा थोड़ा और मस्तिष्क का उपयोग कर सकता हूं :-) इस भयानक उत्तर के लिए धन्यवाद। –

1

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

उन इकाइयों को स्पॉट करने के लिए उपयोगी जिनके पास निर्भरता है, लेकिन उनमें से कुछ का उपयोग करें, साथ ही "वसा हॉग" इकाइयों को ढूंढना, जो सबकुछ उनके साथ रसोईघर सिंक लेते हैं।

एफडब्ल्यूआईडब्ल्यू, निर्भरता को कम करने और हॉग को खत्म करने के लिए निष्पादन योग्य आकार के लिए फायदेमंद नहीं है, यह एक नए संस्करण में अपग्रेड करने का समय होगा, यह सड़क के लिए फायदेमंद भी है।

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

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