डेल्फी आईडीई में एक नया शॉर्टकट जोड़ना बहुत मुश्किल नहीं है क्योंकि ओपन टूल्स एपीआई इसके लिए एक सेवा प्रदान करता है। मैं जाहिरा तौर पर और अधिक जटिल कुछ कोशिश कर रहा हूँ: एक WordStar अतिरिक्त शॉर्टकट की तरह जोड़ें:मैं उपकरण एपीआई का उपयोग कर डेल्फी आईडीई में कुंजी बाध्यकारी Shift + Ctrl + H X कैसे जोड़ूं?
मैं तो होना ही कुछ चाहते हैं जब उपयोगकर्ता प्रेस
Shift + Ctrl + H एकल कुंजी एक्स के बाद
जहाँ X चाहिए Shift कुंजी की स्थिति के बावजूद काम करते हैं।
procedure TGxKeyboardBinding.BindKeyboard(const BindingServices: IOTAKeyBindingServices);
const
DefaultKeyBindingsFlag = kfImplicitShift + kfImplicitModifier + kfImplicitKeypad;
var
GExpertsShortcut: Byte;
ShiftState: TShiftState;
FirstShortCut: TShortCut;
SecondShortCut: TShortCut;
begin
GExpertsShortcut := Ord('H');
ShiftState := [ssShift, ssCtrl];
FirstShortCut := ShortCut(GExpertsShortcut, ShiftState);
SecondShortCut := ShortCut(Ord('X'), []);
BindingServices.AddKeyBinding([FirstShortCut, SecondShortCut],
TwoKeyBindingHandler, nil,
DefaultKeyBindingsFlag, '', '');
end;
तो, अगर मैं ShiftState सेट:: = [ssCtrl] दबाने
Ctrl + H एक्स
मेरी TwoKeyBindingHandler प्रणाली को बुलाती है
यह मेरा कोड है।
लेकिन ShiftState साथ: = [ssShift, ssCtrl] दबाने
Shift + Ctrl + H एक्स
कुछ नहीं करता है।
अजीब तरह से पर्याप्त है, जब ShiftState को निर्दिष्ट: = [ssShift, ssCtrl] दबाने
Shift + Ctrl + H शिफ्ट (जो केवल पहले कुंजी प्रभावित करना चाहिए) + X
, मेरे TwoKeyBindingHandler प्रणाली को बुलाती है, भले ही दूसरा शॉर्टकट एक संशोधक कुंजी के बिना जोड़ा जाता है।
कोई विचार? क्या यह शायद डेल्फी आईडीई/ओपन टूल्स एपीआई की ज्ञात सीमा/बग है? क्या कोई ज्ञात कामकाज है?
मैंने इसे डेल्फी 2007 और डेल्फी 10 सिएटल में कोई फर्क नहीं पड़ता, कोई फर्क नहीं पड़ता।
धन्यवाद, यह सामान्य रूप से हॉटकी की जांच करने का एक समाधान है, लेकिन यह मेरे विशेष मामले पर लागू नहीं होता है जहां मेरे पास ऑनकेडाउन को संभालने के लिए कोई रूप नहीं है। (इसके अलावा: IKeyDown को कई बार कॉल करना अच्छा प्रदर्शन नहीं लगता है, मैं शायद केवल एक बार GetKeyState को कॉल करूँगा और कुंजी संयोजन की जांच करूँगा।) – dummzeuch
हालांकि आप अभी भी एप्लिकेशन के लिए wm_keydown संदेश को संसाधित कर सकते हैं। –
हाँ, मैं कर सकता था। और शायद मैं ठीक से करूँगा कि अगर मुझे ओपन टूल्स एपीआई का उपयोग करके कोई समाधान नहीं मिल रहा है। दुर्भाग्य से मुझे आईडीई को उस कुंजी को देखने से भी रोकना होगा जिसके लिए कुछ अतिरिक्त कोड की आवश्यकता हो सकती है। लेकिन जब मैं वहां जाता हूं तो मैं उस पुल को पार कर दूंगा। – dummzeuch