मैं अंततः एरो सक्षम के साथ विन 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
में, Height
GetRibbonMetric(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 की जांच की गई) के रूप में हल नहीं किया गया प्रतीत होता है।
विषम लगता है। मैंने बस वही किया जो आपने वर्णित किया और यह पूरी तरह से व्यवहार किया। –
हां, मुझे लगता है कि ज्यादातर लोगों के लिए यह मामला होगा, क्योंकि मैं इसे डेमो काम में देखता हूं! हालांकि, यह मेरे लिए काम नहीं करता है। इसकी तरह लगभग मेरे पास डेल्फी 2010 का एक दोषपूर्ण संस्करण है। मैंने पूरी तरह से अनइंस्टॉल किया और डेल्फी 2010 को फिर से स्थापित किया और यह अभी भी उसी तरह से काम कर रहा है – IElite
मैंने इसे पहले कभी नहीं देखा है, ऐसा नहीं करना चाहिए। –