TDbGrid.OnColumnMoved
ईवेंट हैंडलर में, मैं कुछ कॉलम शीर्षलेख रंग समायोजित करता हूं।TDbGrid.OnColumn में माउस को कैसे छोड़ें
मैं ग्रिड के OnTitleClicked
ईवेंट को पॉप-अप (सॉर्ट कॉलम) मेनू में भी उपयोग करता हूं।
दुर्भाग्यवश, उपयोगकर्ता कॉलम ड्रैग करने के बाद और OnColumnMoved
समाप्त हो गया है, वीसीएल OnTitleClicked
पर कॉल करता है। इसका मतलब है कि कॉलम ड्रैगिंग के बाद मेरा सॉर्ट-ऑर्डर पॉप-अप दिखाई देता है।
OnColumnMoved
में कोई तरीका है क्या मैं माउस इवेंट कतार को साफ़ कर सकता हूं ताकि OnTitleClicked
को कॉल न किया जाए?
This thread इस कोड में है, लेकिन मेरे पास Msg
OnTitleClicked
में Msg
नहीं है।
while PeekMessage(Msg, 0, WM_MOUSEFIRST, WM_MOUSELAST,
PM_REMOVE or PM_NOYIELD) do;
(वहाँ यह करने के लिए कोई रास्ता नहीं है, तो यह नहीं बड़ी बात नहीं। मैं तो OnColumnMoved
में एक ध्वज सेट कर सकते हैं कि OnTitleClick
यह करने के लिए अगली कॉल पर ध्यान नहीं देता है।)
आप जानते हैं कि आप अपना स्वयं का 'संदेश: टैगएमएसएस' (या' टीएमएसएस ') वैरिएबल घोषित कर सकते हैं और कॉल में' PeekMessage' 'का उपयोग कर सकते हैं? ऐसा मत सोचो कि यह जवाब है, लेकिन केवल एफवाईआई ... –
हम्मम्म - हर ऑनकॉलमड नहीं किया गया ईवेंट भी मेरे लिए एक ऑनटिटक्लिक घटना ट्रिगर करता है (डेल्फी 10.1), इसलिए ध्वज अविश्वसनीय है। मैं टाइमर का उपयोग कर सकता था, इसलिए यदि OnTitleClick ऑनकॉलम के 0.25 सेकेंड के भीतर (कहें) होता है, तो इसे अनदेखा कर दिया जाता है। लेकिन यह एक पिस्सू को मारने के लिए एक स्लेजहैमर का उपयोग करने जैसा है। इस पर कोई और विचार? – DaveBoltman