Delphiでは、フォームの右側にスクロールバーコンポーネント(縦向き)を追加しました。マウスが動かずにボタンがまだ押されていることを検出するにはどうすればよいですか?
ユーザーがマウスでUpArrowまたはDownArrowボタンをクリックしたときにフォームのビューとスクロールバーのサムの位置を変更できるように、Scrollbar OnChangeイベントを追加しました。
しかし、OnChangeイベントは、矢印上でマウスボタンを最初に押すとトリガされるように見えます。
すべてのスクロールバーコントロールは、マウスを矢印の上に押したまま、コマンドを繰り返してスクロールを続けることに気付きました。この動作を実装したいと思います。
したがって、マウスが矢印の上にとどまっている間にユーザーがマウスを移動してマウスボタンを押し続けているかどうかを簡単に検出できますか?
結論。どういうわけか私のプロジェクトのスクロールバーの何かが壊れてしまった。 ScrollBarを削除してもう一度追加した後、問題はなくなりました。
これは私が解決するのに多くの時間を要した難しい問題の1つです。ご協力いただきありがとうございます。私はこの質問を閉じます。
第OnScroll以降に変更されたが、同じことをし初期クリックを検出するためにOnChangeとして使用します。しかし、どちらも、イベントが続行されるべきであることを絶えず伝えていない彼らは最初のボタンを1回だけ処理します。私はスクロールを続けることができるようにマウスが押されたままであるかどうかを確認する必要があります – lkessler
私のDelphi 6インストールで動作します。 –
それを確認してくれてありがとう、Neil。あなたのテストはDelphi 2009でもうまくいきます。問題の原因につながったと思います。私が使用するコンポーネント(TElScrollBar)は、TScrollBarのように動作しないので、そのコンポーネントに問題があります。これについてはLMDにお問い合わせします。 – lkessler