HSP3のSTOPは重い?
重いといってもCPU負荷が高いということではなく、反応が鈍いということです。
onkey *b *b title " "+wparam stop
と
onkey *b *b title " "+wparam *c wait 100:goto *c
を比べてみてください。
下のwaitを使ったスクリプトではキーを押したときに反応があります。
しかし、上のstopで待つスクリプトでは、カーソルキーなどの反応が鈍い。
キーを押した瞬間ではなく離した時に反応しています。
文字コードが得られるAとか9とかのキーは問題ないようです。
HSP2.6では差はないので、HSP3で仕様が変わったのかもしれません。
以下のスクリプトでメッセージがユーザースクリプトレベルに渡ってくるのか
調べてみました。
oncmd *b,$100 ; WM_KEYDOWN oncmd *b,$101 ; WM_KEYUP *b title " "+iparam+" "+wparam stop
カーソルキーなどの文字コードのないキーでは、WM_KEYUPかリピートのWM_KEYDOWNは
反応があるのに、非リピートのWM_KEYDOWNがユーザーレベルに渡ってきていません。
文字コードのあるキーについては、WM_KEYDOWNはリピート無関係で直ぐに渡ってきて
いますが、WM_KEYUPのタイミングはstopで待っているときはキーを離してから渡って
くるまでに少しタイムラグがあります。
深いところまで調査するつもりはありませんが、おそらくstop中はHSP内部でWindows
メッセージのハンドリングを細工しているのでしょう。
何にしろ現時点ではstopで待つとレスポンスに影響するようなので、気をつけます。