2011-12-07 15 views
7

प्रदर्शित नहीं करता है मैं दोनों एक 64 बिट विंडोज़ मशीन (7 विन), और एक 32 बिट विंडोज़ मशीन (एक्सपी) पर डेल्फी 2010 चला रहा हूँ।TRibbon टैब

मैं कैसे TRibbon नियंत्रण का उपयोग करने के जानने की कोशिश कर रहा हूँ।

मैं मार्को Cantu के 2009 पुस्तिका में उदाहरण का अनुसरण किया गया है और यूट्यूब प्रदर्शन देख, लेकिन मेरे नियंत्रण उस तरह काम नहीं कर रहा है के रूप में किताब या क़ौम में विस्तार से बताया।

मैं सही नियंत्रण क्लिक करके दो टैब कहा,। हालांकि, TRibbon के रूप में बिल्कुल के रूप में यह मेरी स्क्रीनशॉट में करता देखा, जब मैं मुख्य रूप पर छोड़ दें। यह पुस्तकों या यूट्यूब डेमो में जितना अधिक नहीं है।

मैं अपने विन 32 Windows XP और डेल्फी 2010 चला लैपटॉप पर एक ही बात करने की कोशिश की और परिणाम प्राप्त होते

यहाँ

है क्या यह मेरे मशीन पर

64 bit laptop screenshot

यहाँ की तरह लग रहा है क्या यह एक डेमो में

from youtube video demo

एक बार की तरह देखने के लिए लगता है फिर। जब यह प्रपत्र पर छोड़, यह आकार और उस के रूप में ऊंचाई नहीं ले करता है के रूप में मैं क़ौम में देखते हैं। यहां तक ​​कि जब मैं टैब जोड़ता हूं। क्या मैंने अपनी डेल्फी 2010 स्थापना के दौरान कुछ गलत किया?

+2

विषम लगता है। मैंने बस वही किया जो आपने वर्णित किया और यह पूरी तरह से व्यवहार किया। –

+0

हां, मुझे लगता है कि ज्यादातर लोगों के लिए यह मामला होगा, क्योंकि मैं इसे डेमो काम में देखता हूं! हालांकि, यह मेरे लिए काम नहीं करता है। इसकी तरह लगभग मेरे पास डेल्फी 2010 का एक दोषपूर्ण संस्करण है। मैंने पूरी तरह से अनइंस्टॉल किया और डेल्फी 2010 को फिर से स्थापित किया और यह अभी भी उसी तरह से काम कर रहा है – IElite

+0

मैंने इसे पहले कभी नहीं देखा है, ऐसा नहीं करना चाहिए। –

उत्तर

8

मैं अंततः एरो सक्षम के साथ विन 7 64 पर डेल्फी एक्सई (अपडेट 1) में समस्या को पुन: उत्पन्न करने में कामयाब रहा। ऐसा लगता है कि आकार डीएफएम फ़ाइल में गलत हो गया है, और क्योंकि Ribbon मैन्युअल आकार बदलने का समर्थन नहीं करता है, तो आप आईडीई (हालांकि यह रनटाइम पर सही ढंग से दिखाई देता है) में इसे दृष्टि से ठीक नहीं कर सकता है या Object Inspector में। यह कभी-कभी रनटाइम पर सही ढंग से दिखाई देता है, लेकिन ऐसा लगता है कि यह भी स्पोरैडिक है।

यह एक बुरा बग है, क्योंकि यह Ribbon को डिज़ाइन करना असंभव बनाता है। आप RibbonGroup आइटम जोड़ सकते हैं, और ActionManager असाइन कर सकते हैं, और Structure Pane का उपयोग करके इसे पूरी तरह से डिजाइन और डिज़ाइन कर सकते हैं, लेकिन निश्चित रूप से यह एक व्यावहारिक समाधान नहीं है।

सौभाग्य से, एक बहुत ही आसान कामकाज है, हालांकि यह करना मुश्किल है। :)

मैंने काम करने के लिए निम्नलिखित कार्यवाही प्राप्त करने के लिए दो बार प्रबंधित किया, लेकिन इसे शुरू करने में कई बार काम करने में असफल रहा, इसलिए यह एक संभावित तरीका है (कोई वादा नहीं - XE में काम किया, लगातार XE2 अद्यतन 2 में विफल रहा) :

  • Ribbon पर राइट-क्लिक करें और कम से कम एक टैब जोड़ें।
  • आईडीई में फॉर्म पर राइट क्लिक करें, और संदर्भ (पॉप-अप) मेनू से View as Text चुनें।
  • .dfm टेक्स्ट में नियंत्रण पाएं, और को से बदलें कि आईडीई 200 पर असाइन किया गया है। (अगला चरण इसे समायोजित करेगा, लेकिन यह ठीक है - 200 तत्काल समस्या को हल करता है।)
  • दोबारा राइट-क्लिक करें, और View as Form चुनें, और Ribbon सही ढंग से प्रदर्शित होना चाहिए।

(मैं इसे क्यूसी में XE2 अद्यतन 2 के खिलाफ, सूचना के रूप में समस्या भी वहां मौजूद - QC#101642)

मैं इसे TCustomRibbon.GetCaptionHeight का पता लगाया है, विशेष रूप

FCaptionHeight := Max(GetSystemMetrics(SM_CYCAPTION), 26); 

यह GetSystemMetrics कॉल की तरह लगता है कुछ Win7 कॉन्फ़िगरेशन पर 26 से कम कुछ लौट रहा है (हालांकि मैं अभी तक क्यों नहीं समझ सकता)। उस पद्धति में कुछ टिप्पणी पंक्तियां हैं जो परिणाम बदलने में लगती हैं, लेकिन जैसा कि मैंने कहा था कि उन्हें टिप्पणी की गई है।

अजीब हिस्सा TCustomRibbon.Create में, HeightGetRibbonMetric(rmFullHeight) के लिए एक कॉल, जो Result := cRibbonHeight + GetCaptionHeight; सेट द्वारा निर्धारित किया जाता है कि है, और cRibbonHeight एक निरंतर cRibbonHeight = 117; रूप में परिभाषित किया है।

अंत में लगता है कि मैंने इसे ट्रैक किया है। TRibbon की घोषणा में, वहाँ एक published संपत्ति घोषणा है:

published 
    ... 
    property Height default TCustomRibbon.cRibbonHeight; 

क्योंकि यह डिफ़ॉल्ट है, ऐसा लगता है किसी भी अन्य मूल्य का मतलब है कि ऊपर उल्लेख किया GetRibbonMetric करने के लिए कॉल नहीं होता है (देखें TCustomRibbon.Create ऊपर उल्लेख किया है) , और GetSystemMetric पर कॉल से अजीब परिणाम 'अन्य मान' के रूप में सहेजे जाने के लिए गलत मूल्य 26 का कारण बनता है। अजीब; एएम में क्यूसी अपडेट करेंगे।

अतिरिक्त: अतिरिक्त विवरण के साथ अद्यतन क्यूसी रिपोर्ट।

अनुपूरक: मई 2012 में क्यूसी रिपोर्ट opened, लेकिन XE5 अपडेट 1 (जनवरी 2014 की जांच की गई) के रूप में हल नहीं किया गया प्रतीत होता है।

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