どの入力デバイスが特定のGUIイベントをトリガーしたかを簡単に知る方法があるのでしょうか?Delphiで特定のイベントを引き起こしたデバイスを特定する方法を教えてください。
たとえば、TButton.OnClick
イベントが発生します。ユーザーがキーボードプレス(ショートカット、デフォルトボタンの場合はEnter
キー、フォーカスのあるボタンの場合はspace
キーなど)を使用してトリガーしましたか、それともマウスのクリックでトリガーされましたか?簡単な方法はありますか?
私が知りたいのは、ユーザーがマウスを使ってキーボードでも行える操作を開始したときに、キーボードの使用方法のヒントを実装できるということです。ショップフロアにある私たちのシステムはかなり埃が多い/汚れた環境にあり、マウスはあまりうまく機能しません。また、多くの場合、単にマウスを使用する余地はあまりありません。 (いいえ、テンキーパッドのないキーボードは解決策ではありません)。
しかし、私たちのアプリはWindowsで動作するので、ユーザーは自宅のように簡単にプログラムを使用する傾向があります。マウス。特にそれには何も問題はありませんが、入力ワークフローをキーボードフレンドリーに最適化するために努めてきました。それは、マウスをつかむことなく彼らがやっていることをやり遂げる方法があることをユーザに示すために、インパクトの少ない方法があれば、いいだろう。
キーボードアクセスを示す標準的な方法を使用してみませんか? –
@DavidHeffernan:など?できるだけ標準のキーボードショートカットを使用し、デフォルトのボタンを使用し、UIアクションを可能な限りバックするために 'TAction'(または子孫)を使用します。しかし、私はあまりにも多くの画面スペースしか持っていないので、UI全体にショートカット情報を追加することに専念することはできません。ユーザーが「項目を追加」ボタンをクリックしたときに画面上にヒントショーを表示したいと思っています。「項目を追加するために「挿入」を押すこともできます。 – afrazier
ヒントのショートカットを表示します。 VCLがそれを行います。アクセラレータキーを使用します。ユーザーにそれを発見させてください。それらに力を入れないでください。 –