キーリピートの判定

キーリピートされているときは処理を変えたいことがある。しかし、OnKeyDownイベントでは調べられないようだ。

キーリピート状態を知るには、Application.OnMessageイベントに次のように書く。


if (Msg.message = WM_KEYDOWN) then
  KeyRepeat := msg.lParam and $40000000 <> 0;

KeyRepeatが真ならばキーリピート状態になる。キーリピート状態で処理を変えるときは、この変数を調べて処理を振り分ける。

Tips

ブログ

リンク