2013-07-16 4 views
7

मैंने डेल्फी XE2 में एक वीसीएल एप्लिकेशन में एक शैली लागू की है, लेकिन यह ठीक काम करता है, लेकिन ऐसा लगता है कि मुख्य मेनू ने शैली को अनदेखा कर दिया है। संलग्न छवि देखें। क्या यह एक सामान्य व्यवहार है? enter image description hereडेल्फी XE2 शैली: मुख्य मेनू अनदेखा

मुख्य मेनू में शैली को कैसे लागू करें इस पर कोई सलाह है?

+3

सी [ 'इस comment'] (http://theroadtodelphi.wordpress.com/2012/03/06/adding-vcl-styles-support-to-a-tpopupmenu-in-2- लाइनों के- कोड/# टिप्पणी-1756)। Rodrigo 'TMainMenu' के बजाय' TActionMainMenuBar' का उपयोग करने के लिए सुझाव देता है। लेकिन वह उत्तर के साथ जल्द ही या बाद में होगा, मैं कहूंगा :-) – TLama

उत्तर

10

यह TMainMenuBarStyleHook वीसीएल स्टाइल हुक की एक सीमा है। इस तरह के मुद्दे को ठीक करने का सामान्य दृष्टिकोण नया TMainMenu स्टाइल हुक बना और पंजीकृत कर रहा है, लेकिन दुर्भाग्यवश यह वीसीएल स्टाइल हुक TFormStyleHook (रूपों के वीसीएल स्टाइल हुक) द्वारा आंतरिक रूप से उपयोग किया जाता है, इसलिए इसकी आवश्यकता होगी कि आप एक नया फॉर्म बनाएं शैली हुक भी है और यह बहुत काम का तात्पर्य है।

तो मेरा सुझाव को TActionMainMenuBar घटक के लिए प्रतिस्थापित करता है जो vcl शैलियों के साथ बहुत अच्छी तरह से काम करता है।

enter image description here

+0

शायद आप स्क्रैच से फ़ॉर्म हुक को फिर से बनाने के बजाय इन-मेमोरी पैचिंग का उपयोग कर सकते हैं? –

+1

इस विशेष मामले में, एक चक्कर का उपयोग करके स्मृति में विधि को पैच करने के लिए Vcl स्टाइल हुक को स्क्रैच से लिखने के समान प्रयास की आवश्यकता होगी। – RRUZ

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