2011-08-15 12 views
9

मुझे सूची दृश्य में पंक्ति की ऊंचाई पर केवल 2px जोड़ने की आवश्यकता है (एक कस्टम खींची गई प्रगति पट्टी अब बहुत संकीर्ण है)।रिपोर्ट शैली में सूचीदृश्य की पंक्ति ऊंचाई कैसे बढ़ाएं?

दो अच्छे उत्तर Change Listview item height, http://www.delphipages.com/forum/showthread.php?t=49939 हैं, लेकिन मैं इसे नहीं कर सका।

मुझे पता है कि यह एक छवि सूची के साथ क्या करना संभव है, लेकिन मैं पहले से ही 16x16 छवियों :)

किसी को भी मेरी मदद कर सकते है? मैं इसकी सराहना करूंगा। CN_MEASUREITEM नियंत्रण सूचना संदेश को

उत्तर

13

जवाब, इस प्रकार है:

type 
    TListView = class(ComCtrls.TListView) 
    private 
    procedure CNMeasureItem(var Message: TWMMeasureItem); message CN_MEASUREITEM; 
    end; 

    TForm1 = class(TForm) 
    ... 

procedure TListView.CNMeasureItem(var Message: TWMMeasureItem); 
begin 
    inherited; 
    Inc(Message.MeasureItemStruct.itemHeight, 2); 
end; 

नोट: यदि OwnerDraw संपत्ति सच है यह संदेश केवल भेज दिया जाएगा।

+0

वाह! धन्यवाद!!! मैंने टीएमएस 'TAdvListView का एक स्रोत कोड देखा और यह संदेश' CNDrawItem (var संदेश: TWMDrawItem); 'भी संभाला जाता है (लिंक डिलीफेज के पास टीएमएस में समान कोड होता है)। क्यूं कर? – maxfax

+0

डुन्नो TAdvListView। डिफ़ॉल्ट TListView में पहले से ही OnDrawItem ईवेंट है। – NGLN

+0

आईडी इससे कोई फर्क नहीं पड़ता :) यह काम करता है !!! आप एक अच्छे प्रोग्रामर हैं और एक व्यक्ति के रूप में! धन्यवाद! – maxfax

2

किसी भी कोड को लिखने के बिना एक त्वरित और गंदे विकल्प एक टीआईमेजलिस्ट जोड़ना होगा, इसकी चौड़ाई 1 तक सेट करें और इसकी ऊंचाई जो भी आप चाहते हैं लाइनों की ऊंचाई और सूचीदृश्य के छोटे टुकड़ों को असाइन करें।

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