2011-12-07 11 views
6

मैं कुछ कस्टम फायरमॉन्की जीयूआई नियंत्रण बना रहा हूं। उपयोगकर्ता इंटरैक्शन के जवाब में घटकों को अद्यतन करने की आवश्यकता है। वीसीएल नियंत्रण अमान्य() को पुनर्भुगतान के लिए कतार में रखा जा सकता है। क्या FireMonkey के बराबर विधि है?क्या FireMonkey नियंत्रण VCL अमान्य() विधि के बराबर है?

फ़ायरमॉन्की नियंत्रण में एक पश्चाताप() विधि है, लेकिन AFAICT जो नियंत्रण को तत्काल पुनर्निर्मित करने के लिए मजबूर करता है। कुछ परिस्थितियों में एक कतार प्रकार प्रणाली अधिक उपयुक्त होगी।

+0

मैंने अभी तक XE2 का उपयोग नहीं किया है, लेकिन मुझे लगता है कि "scene | object.refresh | redraw" जैसे कुछ होना चाहिए – ComputerSaysNo

+4

TControl.Realign अधिक फिट बैठता है क्योंकि अधिकांश समय एफएमएक्स नियंत्रणों में कोई प्रत्यक्ष चित्र नहीं होता है, क्योंकि वे आदिम से बने हैं। यदि आप रीयललाइन कहते हैं, तो प्राइमेटिव को – az01

+0

http://stackoverflow.com/questions/8411143/firemonkey-controls-do-not-animate-smoothly – Shannon

उत्तर

2
Control.InvalidateRect(RectF(0,0,width,height)); 
+0

जहां तक ​​मैं कह सकता हूं, यह मेरे प्रश्न का सही उत्तर है। अमान्यateRect() विधि काम नहीं करती है क्योंकि मुझे आशा थी कि यह होगा लेकिन मुझे लगता है कि वीसीएल और एफएमएक्स के बीच मतभेदों के कारण है। धन्यवाद Relativ। – Shannon

2

फायरमॉन्की का टीकंट्रोल.रिपेंट TPlatformWin.ReleaseWindow को कॉल करना समाप्त होता है। यदि प्रपत्र। ट्रांसपेरेंसी झूठी है तो यह विधि विंडोज अमान्येट्रैक फ़ंक्शन को कॉल करती है, जैसे वीसीएल के टीकंट्रोल। इन्वालिडेट करता है।

तो वास्तव में वही काम करता है जो VCL का अमान्येट करता है, जब तक फॉर्म। ट्रांसस्पैरेंसी = सत्य।

+0

स्पष्टीकरण गिएल के लिए धन्यवाद – Shannon

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