6

मुझे डेल्फी में निम्नलिखित समस्या है (लेकिन इसे एक सामान्य प्रोग्रामिंग प्रश्न के रूप में लिया जा सकता है)।गैर संशोधक कुंजी प्रेस संयोजन का पता लगाने के लिए कैसे?

मैं किसी तरह एक कुंजी दबाएँ घटना एक + डी या डी + तरह शॉर्टकट के लिए उदाहरण के लिए, एक से अधिक गैर संशोधक कुंजी संयोजन के लिए संभाल करने के लिए एफ या डी चाहते हैं + एफ + जी

मुझे पता है कि जैसे उदाहरण CTRL + डी या CTRL के लिए + एएलटी + डी या एएलटी + डी, लेकिन मैं कैसे पता लगा सकते हैं गैर आपरिवर्तक कुंजी के साथ शॉर्टकट को संभालने के लिए -मोडिफायर कुंजी प्रेस संयोजन?

+3

कोई विशेष घटना हैंडलर नहीं है, आपको मुख्य दृश्यों को मैन्युअल रूप से ट्रैक करना होगा। (बीटीडब्ल्यू, कृपया चिल्लाओ मत) –

+1

और कृपया अपने विषयों में टैग में मौजूद जानकारी का उपयोग न करें। टैग सिस्टम यहां बहुत अच्छा है, और मदद की ज़रूरत नहीं है (विशेष रूप से जब देखा गया)। टैग का प्रयोग करें - यही वह है जो वे हैं। –

+2

क्षमा करें, मैं नया हूँ! :) –

उत्तर

8

प्रत्येक व्यक्तिगत कीस्ट्रोक अलग OnKeyDown, OnKeyPress, और OnKeyUp ईवेंट उत्पन्न करता है। तो आपके पास तीन विकल्प हैं:

  1. वर्तमान में नीचे दी गई प्रत्येक कुंजी का ट्रैक रखें। आपको प्राप्त होने वाली प्रत्येक कुंजी के लिए, OnKeyDown ईवेंट में इसके लिए ध्वज सेट करें और इसके लिए ध्वज को OnKeyUp ईवेंट में साफ़ करें। जब आप डी के लिए एक OnKeyDown घटना मिलता है, तो देखें कि क्या आप पहले से ही चिह्नित किये एक, एफ, जी, आदि OnKeyDown और OnKeyUp घटनाओं को भी आप CTRL के राज्य बता देंगे, एएलटी , और SHIFT कुंजी।

  2. Win32 API GetKeyboardState(), GetKeyState() या GetAsyncKeyState() फ़ंक्शंस का उपयोग करें। जब आप डी के लिए एक OnKeyDown घटना मिलता है, ओएस अगर एक, एफ, जी, CTRL, आदि वर्तमान में नीचे आयोजित कर रहे हैं पूछो।

  3. कुछ अनुक्रमों के लिए, आप RegisterHotKey() का उपयोग कर सकते हैं और ओएस को आपके लिए कुंजी ट्रैक कर सकते हैं। जब एक पंजीकृत अनुक्रम पता चला है, तो आपको WM_HOTKEY संदेश प्राप्त होगा।

+0

बहुत बहुत धन्यवाद! मैं आपकी विधि साबित करूंगा, खासकर बिंदु 1 और 2 के लिए! धन्यवाद! –

+0

अगर कोई माउस ले जा रहा है (लैपटॉप टचपैड के बारे में सोचें - टाइपिंग करते समय कई बार मैंने इसे दुर्घटनाग्रस्त कर दिया है) विधि # 1 विफल हो सकती है।मुझे कुछ भी पता नहीं है जो # 2 विफल हो सकता है। –

+0

@LorenPechtel: बस रुचि रखते हैं। यह कैसे असफल होगा? अलग-अलग कीबोर्ड ईवेंट अभी भी निकाल दिए जाएंगे और आप उन्हें ट्रैक कर सकते हैं? –

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

  • कोई संबंधित समस्या नहीं^_^