フォームのKeyPreviewプロパティをtrueにすると、キーボードイベントを受け取ることができます。
キーボードイベントはアクティブコントロールで発生する前にフォームで発生します。
押されたキーのコードを表示するサンプルプログラム
フォームにチェックボックス(TCheckBoxコンポーネント)とラベル(TLabelコンポーネント)を配置します。
フォームにKeyDownイベントを追加し、押されたキーをラベルに表示するようにします。
void __fastcall TForm1::FormKeyDown(TObject *Sender, WORD &Key, TShiftState Shift)
{
Label1->Caption = IntToStr(Key);
}
チェックボックスにクリックイベントを追加し、フォームのKeyPreviewプロパティを切り替えるようにします。
void __fastcall TForm1::CheckBox1Click(TObject *Sender)
{
this->KeyPreview = CheckBox1->Checked;
}
チェックボックスがチェックされている時(フォームのKeyPreviewプロパティがtrueの時)は、押されたキーのコードがラベルに表示されます。