delphi - keys - डेल्फी: मैं कार्यवाही शॉर्टकट कुंजी को ऑटोरेपीटिंग कैसे रोकूं?




शॉर्टकट मेनू (2)

मैं कुछ कार्यों के लिए शॉर्टकट कीज़ के साथ, डेल्फी टीएक्शनल लिस्ट का उपयोग कर रहा हूं।

मैं कुछ कार्यों को कुंजीपटल स्वत: दोहराने से कई बार ट्रिगर करने से रोकना चाहता हूं, लेकिन मैं अपने आपरेशन को वैश्विक स्तर पर पुन: क्रिया को प्रभावित नहीं करना चाहता हूं। ऐसा करने का सबसे अच्छा तरीका क्या है?

स्पष्टीकरण : मुझे अभी भी कई तेज कुंजीपटलों को संभालने की आवश्यकता है - यह स्वत: दोहराने से उत्पन्न होने वाली केवल कम्प्रेशंस है जिसे मैं अनदेखा करना चाहता हूं


आप TTimer को छोड़ सकते हैं, सेट TTimer.Interval मूल्य के लिए आप चाहते हैं (1000 = 1sec), फिर TActionList में ऐसा कुछ करें:

procedure TfrmMain.ActionList1Execute(Action: TBasicAction; var Handled: Boolean);
begin
  if Timer1.Enabled then 
  begin
    Handled := True;
    Exit;
  end;

  Handled := false; 
  Timer1.Enabled := true;     
end;

टाइमर में टाइमर को अक्षम करने के लिए भी मत भूलना। OnTimer


WM_KEYDOWN संदेशों को रोकें , और यह देखने के लिए कि क्या यह स्वत: दोहराव है, बिट 30 को देखता है। यदि ऐसा है, तो हमेशा संदेश पर सामान्य रूप से पास न करें और यह नहीं देखा जाएगा।

इस कार्य को बनाने के लिए आपको फ़ॉर्म की-पूर्वावलोकन सक्षम करना पड़ सकता है





taction