API:Vcl.AxCtrls.TPropertyPage.OnKeyDown
Delphi
property OnKeyDown: TKeyEvent read FOnKeyDown write FOnKeyDown stored IsForm;
C++
__property OnKeyDown;
プロパティ
種類 | 可視性 | ソース | ユニット | 親 |
---|---|---|---|---|
event | published | Vcl.AxCtrls.pas Vcl.AxCtrls.hpp |
Vcl.AxCtrls | TPropertyPage |
説明
コントロールにフォーカスがあるときにユーザーがキーを押すと発生します。
Vcl.AxCtrls.TPropertyPage.OnKeyDown は Vcl.Controls.TWinControl.OnKeyDown を継承しています。以下の内容はすべて Vcl.Controls.TWinControl.OnKeyDown を参照しています。
コントロールにフォーカスがあるときにユーザーがキーを押すと発生します。
OnKeyDown イベント ハンドラを使用すると、キーが押された際に発生する、特殊な処理を指定することができます。 OnKeyDown ハンドラは、キーボード キー(ファンクション キーや、SHIFT、ALT、CTRL キーと通常のキーとの組み合わせ、も含まれる)のほか、マウス ボタンの押下にも応答します。
OnKeyDown は、Vcl.Controls.TKeyEvent 型のイベント ハンドラです。 パラメータの説明については、TKeyEvent を参照してください。
アプリケーションは、すべてのキーについて、ユーザーがキーを押すと Windows の WM_KEYDOWN メッセージを受け取ります。 このメッセージは、間接的に OnKeyDown イベントを生成します。 Key パラメータを #0 に設定すると、メッセージはそれ以上処理されなくなります。 ただし、文字を生成するキーでは、Windows は WM_CHAR も生成します。 OnKeyDown イベントが発生した時点で、そのキーの WM_CHAR メッセージは既にメッセージ キューに置かれています。 Key を #0 に設定しても、メッセージの配信を止めることはできないため、OnKeyPress イベントが発生します。 つまり、Key を #0 に設定しても、文字を持っていないキーに対してのみ、OnKeyPress イベントの発生が回避されます。 文字を表すキーについては、引き続き OnKeyPress が発生します。
このようなキーの処理方法には利点があります。 文字(改行復帰の #13、Ctrl+C の #3 などの制御文字を含む)だけを処理するコードは、OnKeyPress イベントを使用する必要があります。 文字を生成しないキーを処理するコードは、OnKeyDown イベントを使用する必要があります。