FMX.Controls.TControl.KeyDown
Delphi
procedure KeyDown(var Key: Word; var KeyChar: WideChar; Shift: TShiftState); virtual;
C++
virtual void __fastcall KeyDown(System::Word &Key, System::WideChar &KeyChar, System::Classes::TShiftState Shift);
プロパティ
種類 | 可視性 | ソース | ユニット | 親 |
---|---|---|---|---|
procedure function |
protected | FMX.Controls.pas FMX.Controls.hpp |
FMX.Controls | TControl |
説明
コントロールにキーボード フォーカスがある状態でキーが押されたときの応答を提供します。
押されたキーがアプリケーション キー(Key = vkApps
)の場合、KeyDown はコントロールのコンテキスト メニューを表示します。それ以外の場合は、OnKeyDown イベント ハンドラが割り当てられていれば、KeyDown はそれを呼び出します。
TCommonCustomForm クラスや TControl の下位クラス(TCustomGrid など)では、キーの押下を処理するメソッドから KeyDown を呼び出します。これらは、メッセージ パラメータをキー コード、文字コード、シフト状態にデコードします。これらをそれぞれ Key
、KeyChar
、Shift
の各パラメータに渡して KeyDown メソッドを呼び出します。
パラメータ | 説明 |
---|---|
|
押されたキーボード キーのスキャン コードか 押されたキーの組み合わせがショートカットと考えられる場合、 同じキーの物理的なスキャン コードが、異なるプラットフォーム(Windows または iOS)では異なる可能性があります。 プラットフォーム固有のユニット(たとえば FMX.Platform.Mac.pas など)では、ネイティブ スキャン コードを、対応する Windows コード(UITypes ユニットで定義)に変換しなければなりません。以下に例を示します。
|
|
押された文字(数字)または 押されたキーの組み合わせを印字可能な文字または数字として扱える場合は、 |
|
コントロールにフォーカスがある状態で指定のキーが押されたときにどのシフト キー(Shift、Ctrl、Alt、command)が押されたかを示します(command キーは Mac の場合のみ)。 |
押されたキーの組み合わせがコントロールで正常に処理され、それ以上の処理が必要ない場合、KeyDown は、Key = 0
および KeyChar = #0
を割り当てます。
protected メソッドである KeyDown をオーバーライドすると、コントロールにキーボード入力フォーカスがある状態でキーが押されたときの別の応答を提供することができます。
パラメータの詳細については、TCommonCustomForm.KeyDown を参照してください。