FMX.Forms.TCommonCustomForm.KeyDown
Delphi
procedure KeyDown(var Key: Word; var KeyChar: System.WideChar; Shift: TShiftState); virtual;
C++
virtual void __fastcall KeyDown(System::Word &Key, System::WideChar &KeyChar, System::Classes::TShiftState Shift);
プロパティ
| 種類 | 可視性 | ソース | ユニット | 親 | 
|---|---|---|---|---|
| procedure function | public | FMX.Forms.pas FMX.Forms.hpp | FMX.Forms | TCommonCustomForm | 
説明
このフォームに入力フォーカスがある際に、キーが押されると実行されます。
FireMonkey フレームワーク KeyDown は、フォームでキーの押下を処理する主要メソッドです。KeyDown は、このフォームに入力がフォーカスがあるときに、キーが押されるたびに実行されます。KeyDown は内部的に使用されます。用途は、メニューやアクションを有効化する、このフォームの子コントロールを循環する TAB リクエストを処理するためなどです。エディタは、KeyDown を使用して、編集されているテキストにシンボルを追加することができます。
KeyDown をサブクラスでオーバーライドすることにより、さらなるキー処理を提供することができます。
KeyDown には、次のパラメータがあります:
| パラメータ | 説明 | 
|---|---|
| 
 | 押されたキーボード キーのスキャン コード、または、 UITypes ユニットは、キーボード キーのスキャン コードのためのシンボリック定数を提供する、Virtual Keys を定義します。 同じキーの物理スキャン コードは、異なるプラットフォーム(Windows や iOS)下では異なる可能性があります。FireMonkey フレームワーク プラットフォーム固有ユニット(FMX.Platform.Mac.pas ユニット)では、ネイティブの Mac スキャン コードを、UITypes ユニットで定義されている対応する Windows のコードに変換しなければなりません。その結果、 
 数字および文字のキー -- 入力言語やアルファベット キーの大文字小文字には依存しない -- は、' 
 
 | 
| 
 | 押された文字(数字)、または、 押されたキーの組み合わせを印字可能な文字または数字として扱える場合は、 | 
| 
 | キーが押下された際の、Ctrl、Alt、Shift、および CMD(Mac のみ)のキーの状態を決定します。 | 
KeyDown は次のアルゴリズムに従って押されたキーを処理します。
- KeyDown はまず IsDialogKey を、KeyDown で指定されたのと同じパラメータで呼び出します。IsDialogパラメータは、KeyChar < ' 'やShiftが CTRL、ALT、または CMD キーのいずれかである場合に、Trueを返します。つまり、KeyCharとShiftの組み合わせが、何らかのコントロールの組み合わせであるか(印刷可能文字でないか)を示しているか、です。そうでなければ、Falseを返します。' '文字は、$20ASCII 値を持っています。$20より小さい ASCII 値は、コントロールの組み合わせを示します。
- IsDialogKey が TrueをIsDialogパラメータで返した場合、押されたキーの組み合わせが処理されるまで、次の順番で、フォーム内のすべての子コントロール、メニュー、アクション リスト渡されます:
- Key = vkTabの場合、KeyDown はフォーカスを、コントロールの「タブ順」の次のコントロールに移し、終了します。
- Key <> 0または- KeyChar <> #0の場合、KeyDown は、フォーカスのあるコントロールの KeyDown メソッドを呼び出し、それから、OnKeyDown イベント ハンドラのいずれかが割り当てられている場合には、それを呼び出します。
- finally ブロックで、KeyDown は現在の日時を、現在の アプリケーションの LastKeyPress と LastUserActive プロパティに格納します。