Vcl.Controls.TWinControl.OnKeyPress

提供: RAD Studio API Documentation
移動先: 案内検索

Delphi

property OnKeyPress: TKeyPressEvent read FOnKeyPress write FOnKeyPress;

C++

__property TKeyPressEvent OnKeyPress = {read=FOnKeyPress, write=FOnKeyPress};

プロパティ

種類 可視性 ソース ユニット
event protected
Vcl.Controls.pas
Vcl.Controls.hpp
Vcl.Controls TWinControl

説明

キーが押されたときに発生します。

OnKeyPress イベント ハンドラを使用すると、1 文字のキーを押したときの結果として何かを発生させます。

OnKeyPress イベント ハンドラの Key パラメータはChar 型で、OnKeyPress イベントは押されたキーの ASCII 文字を登録します。ASCII Char 値(たとえば SHIFT キーや F1キー)に対応しないキーは、OnKeyPress イベントを生成しません。キーの組み合わせ(たとえば SHIFT+A など) では、OnKeyPress イベントを 1 つだけ生成します。(たとえば、SHIFT+A と押したときの結果は、Caps Lock がオフのときの Key の値が「A」になります。)ASCII 以外のキー、またはキーの組み合わせに応答するには、OnKeyDown もしくは OnKeyUp イベント ハンドラを使用します。

アプリケーションは、すべてのキーについて、ユーザーがキーを押すと 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 イベントを使用する必要があります。

関連項目

コード サンプル