2010-03-26 4 views
7

मैंने देखा कि जब आप बटन की शैली को tbsDropdown पर सेट करते हैं तो TToolButton की ऊंचाई बढ़ जाती है। मैं चौड़ाई बढ़ाने में समझ सकता हूं, इसलिए बटन में नीचे तीर खींचने की जगह है, लेकिन मुझे यकीन नहीं है कि ऊंचाई वृद्धि आवश्यक है। समस्या को ठीक करनेTToolButton ऊंचाई शैली के साथ बढ़ता है = tbsDropdown

कदम (डेल्फी 2010, विंडोज 7 64):

  • एक रूप को TToolbar जोड़ें, ShowCaptions = सच
  • सही टूलबार में कोई बटन जोड़ने के लिए क्लिक
  • सेट बटन शैली = tbsDropDown और बटन ऊंचाई

एक ही ऊंचाई वृद्धि होता है जब वहाँ उपकरण पट्टी करने के लिए सौंपा छवियाँ हैं में बढ़ता है, इस स्थिति में वहाँ ALR है बूंद को खींचने के लिए बटन में उपलब्ध बहुत अधिक लंबवत स्थान उपलब्ध है। alt text http://img440.imageshack.us/img440/1462/ttoolbar02.png alt text http://img291.imageshack.us/img291/966/ttoolbar01.png

है इसके लिए एक समाधान VCL हैकिंग के बिना, या इस Windows नियंत्रण में hardcoded है:

यहाँ एक दृश्य उदाहरण है?

उत्तर

3

यह अंतर्निहित विंडोज नियंत्रण का हिस्सा है। ComCtrls में एक त्वरित रूप से पता चलता है कि TToolButton.Style को बदलने से यह SetStyle विधि है। यदि, SetStyle में, ShowCaptions सत्य है तो TToolBar.ButtonWidth और ButtonHeight दोनों 0 पर सेट हैं, और TToolButton.RecreateButtons कहा जाता है।

RecreateButtons, बारी में, कॉल TToolBar.ResizeButtons, जो केवल भेजता है (पोस्ट)

Perform(TB_AUTOSIZE, 0, 0); 

TB_AUTOSIZE इस्तेमाल किया जा करने का इरादा है का उपयोग कर ToolBar के लिए एक संदेश, MSDN के अनुसार,

के कारण के बाद बटन या बिटमैप आकार या पहली बार तार जोड़कर या तो बदलने के लिए टूलबार का आकार।

SetStyle के बाद से सेट दोनों ButtonWidth और ButtonHeight 0, इस संदेश को सही ढंग से भेजे जाने के लिए प्रतीत होता है।

1

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

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