2012-01-29 14 views
5

मेरे पास एक TListView (रिपोर्ट मोड में) है जिसका उपयोग मैं वर्चुअल मोड (स्वामी डेटा: = True) में कर रहा हूं। सभी उन स्थितियों को छोड़कर अच्छी तरह से काम करता है जिन्हें मैं स्वचालित रूप से उस ऑटोोज़ाइज़ कॉलम के बारे में जानता हूं। वे हैं:स्वामित्व डेटा के साथ TListView में डिफ़ॉल्ट कॉलम ऑटोोज़ाइजिंग को संभालने के लिए कैसे करें

  1. डबल क्लिक करने हैडर कॉलम विभाजक एकल स्तंभ सभी स्तंभों autosizes को
  2. Ctrl-KeypadPlus कुंजी AutoSize करने के लिए।

इन घटनाओं के डिफ़ॉल्ट से निपटने जब आभासी मोड वास्तव में काम नहीं करता है (यह डेटा की पहली पंक्ति पर AutoSize लगता है।) में मैं व्यवहार में हुक और मेरे अपने स्तंभ स्वत: आकार बदलना क्या करना चाहते हैं। क्या किसी को पता है यह कैसे किया जाता है? या शायद मुझे कुछ याद आ रही है? मैं डेल्फी एक्सई का उपयोग कर रहा हूँ। किसी भी सुझाव के लिए धन्यवाद।

+0

यहां कुछ ऐसा ही है http://stackoverflow.com/q/9255540/960757 – TLama

उत्तर

1

आभासी सूची दृश्य नियंत्रण के लिए ऑटो-साइज कॉलम ऑटो-आकार ऑपरेशन की कार्रवाई के समय दिखाई देने वाली सभी वस्तुओं का उपयोग करके किया जाता है। यह डेल्फी TListView नियंत्रण का व्यवहार है। एक्सप्लोरर में एक ही ऑपरेशन करने का प्रयास करें और आप आसानी से देख सकते हैं कि यह ऑपरेटिंग सिस्टम मानक है।

जब आप गैर वर्चुअल मोड में एक सूची दृश्य संचालित करते हैं, तो सभी पंक्तियों की सामग्री ऑटो-आकार करने के दौरान जिम्मेदार होती है।

मुझे यकीन नहीं है कि आप डेटा की पहली पंक्ति के लिए केवल ऑटो-आकार का लेखा क्यों देखते हैं। यदि यह वास्तव में आपके लिए क्या हो रहा है तो मुझे लगता है कि आपके कोड में कुछ गलत होना चाहिए जिसे हमें देखना होगा।


आपकी समस्या Windows XP बग प्रतीत होती है। वर्चुअल सूची दृश्य XP पर अब तक ऑटो-आकार का सही ढंग से प्रदर्शन नहीं करते हैं जैसा कि मैं देख सकता हूं। मुझे लगता है कि एक्सप्लोरर एक्सपी और विस्टा के बीच वर्चुअल से वर्चुअल से स्विच किया गया है और मुझे सट्टा नहीं होगा कि एक्सप्लोरर टीम के पास समस्या को ठीक करने के लिए पर्याप्त आंतरिक लाभ था।

जहां तक ​​मुझे पता है कि आपको सूचित नहीं किया गया है कि एक ऑटो-आकार हो रहा है, इसलिए मुझे लगता है कि समस्या के समाधान के लिए आपके लिए मुश्किल हो सकती है। यदि आप इसे आगे बढ़ाना चाहते हैं तो आप हेडर नियंत्रण के लिए HDN_DIVIDERDBLCLICK अधिसूचना और CTRL + के लिए सूची का जवाब देने का प्रयास कर सकते हैं। हालांकि, मुझे यकीन नहीं है कि वह दृष्टिकोण किसी भी खुशी का उत्पादन करेगा या नहीं।

+0

धन्यवाद डेविड। मुझे यकीन नहीं है कि यह किस विधि का उपयोग कर रहा है, लेकिन मेरे एक्सपी सिस्टम पर यह ऑटोोज़ाइजिंग करने के लिए दृश्य पंक्तियों का उपयोग नहीं करता है (या यह गलत तरीके से मापता है, प्रतीत होता है कि यह छोटे होने के लिए सेट करता है जैसे कि मुझे बहुत सारे इलिप्स मिलते हैं, कभी-कभी कुछ पात्रों द्वारा, कभी-कभी अधिक से अधिक।) किसी भी मामले में, मेरा प्रश्न वास्तव में व्यवहार को नियंत्रित करने का तरीका है क्योंकि डिफ़ॉल्ट मेरी आवश्यकताओं को पूरा नहीं करता है। – MarkF

+0

मैंने विंडोज 7 पर प्रयोग किया। मैं एक एक्सपी मशीन पर एक झांक लेगा। यह देखने के लिए कि यह कैसे व्यवहार करता है। –

+0

धन्यवाद, मैं आपके अपडेट की सराहना करता हूं। मेरी मुख्य देव मशीन एक्सपी है, लेकिन निश्चित रूप से मैं विन 7 64 बिट में अपग्रेड करने की योजना बना रहा हूं, इसलिए मैं XE2 के साथ खेल सकता हूं। मैंने सी ++ के लिए कुछ फोरम पोस्ट देखे, जिसमें उल्लेख किया गया था कि उन्हें इस मुद्दे के आसपास काम करने के लिए अपने हेडर नियंत्रण का उपयोग करना था, इसलिए मुझे लगता है कि आप खुशी की कमी के बारे में सही हो सकते हैं ... मुझे आश्चर्य है कि ऐसा कुछ ऐसा लगता है ओवरराइड करने के लिए उपयोगी होगा। – MarkF

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