フォームでキーボードイベントを受け取る

フォームの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の時)は、押されたキーのコードがラベルに表示されます。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください