2011-03-15 7 views
6

डेल्फी (2010 में इस मामले में, लेकिन यह अन्य संस्करणों के लिए ऐसा कर सकता है) में एक विरासत TImageList युक्त एक फॉर्म खोलते समय, आईडीई अनिवार्य रूप से (मुझे कोई कविता नहीं मिल सकती है या इसके लिए लय) छवि डेटा फिर से विरासत में जोड़ता है। यह तब निष्पादन योग्य के आकार को बढ़ाता है। किसी को भी पता है क्यों, और मैं इसे कैसे रोक सकता हूं? मैं दोहराना, छवि बदल गया है।डेल्फी आईडीई विरासत में डीएफएम फाइलों में इमेजलिस्ट बदल रहा है

+2

मैं जो करता हूं वह डेटा मॉड्यूल पर छवि सूची डालता है और इसे आपके रूपों में क्लॉज का उपयोग करता है। डिजाइनर इसे – Jamie

+1

@Jamie देखने में सक्षम होना चाहिए: इसे एक उत्तर दें! –

+0

@jeroen Pluimers - जोड़ा गया – Jamie

उत्तर

2

मेरी सिफारिश: .dfm फ़ाइलों में छवियों को कभी भी न रखें। हमेशा उन्हें संसाधन फ़ाइलों में डाल दें और अपने ऐप पर नियंत्रण प्राप्त करें।

4

यह टीआईमेजलिस्ट के साथ एक ज्ञात मुद्दा है, और कचरा डेटा को फिर से हटाने के अलावा आप इसके बारे में इतना कुछ नहीं कर सकते हैं। (BeyondCompare यहां बहुत उपयोगी हो सकता है, खासकर स्रोत नियंत्रण के संयोजन के साथ।) If you want to see it fixed, please vote for the QC report on it.

4

यह समस्या का "समाधान" नहीं है, लेकिन क्या हो रहा है इसके बारे में अधिक स्पष्टीकरण। किसी दिए गए छवि सूची के लिए छवि डेटा डेटा के बाइनरी ब्लॉब के रूप में संग्रहीत किया जाता है। डेटा का यह ब्लॉब comctl32.dll से अंतर्निहित IMAGELIST कार्यान्वयन से प्राप्त किया जाता है।

संभवतः क्या हो रहा है कि किसी कारण से comctl32.dll में विंडोज़ कार्यान्वयन नीचे "पूर्वजों" उदाहरण और "वंश" उदाहरण के बीच छवि डेटा को अलग-अलग स्ट्रीम कर रहा है। विंडोज़ के लिए, इन दो उदाहरणों के बीच कोई संबंध नहीं है।

फॉर्म-विरासत कार्य करने का तरीका यह है कि यह निर्धारित करने के लिए स्ट्रीमिंग करते समय "वंशज" और "पूर्वज" के बीच संपत्ति-दर-संपत्ति तुलना करता है, यह निर्धारित करने के लिए कि किसी दिए गए संपत्ति को फ़ॉर्म में लिखा जाना चाहिए या नहीं। चूंकि छवि डेटा गुओ का एक अपारदर्शी ब्लॉब है, हम जो भी कर सकते हैं वह पूर्व-पूर्व में TImageList उदाहरण लिखता है और वंश पर TImageList उदाहरण क्या लिखता है, इसके बीच एक बाइट-बाय-बाइट तुलना है। यदि केवल एक बाइट अलग था, तो स्ट्रीमिंग सिस्टम के पास अनुमान है कि कुछ बदले में अनुमानित उदाहरण से डेटा लिखने के अलावा कोई विकल्प नहीं है। उदाहरण के लिए (और मुझे वास्तव में विवरण नहीं पता है क्योंकि यह अपारदर्शी है), यदि गुओ के ब्लॉब में टाइमस्टैम्प होता है, तो यह कल्पना की जा सकती है कि प्रत्येक बार जब यह लिखा जाता है तो डेटा अलग होगा।

5

मैं जो करता हूं वह इमेजलिस्ट को डेटा मॉड्यूल पर रखता है और फिर इसे फॉर्म में उपयोग करता है। फॉर्म डिजाइनर छवि सूची

+0

मेरी अधिकांश परियोजनाओं में, मेरे पास एक या अधिक संसाधन डेटामैड्यूल हैं जिनमें इन प्रकार की छवि सूचियां हैं। –

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