私はいつでもEscキーを押すことで現在のフォームを閉じるために多くのことを、これを使用している:TEditがフォーカスされている間にエスケープを押したときの鳴き声を避けるには?私は数年前に開発したコードでは
procedure TSomeForm.FormKeyPress(Sender: TObject; var Key: Char);
begin
if key = #27 then close;
end;
この動作はTFormはのために定義されています。フォームのKeyPreview
プロパティはTrue
に設定され、フォームが他のコンポーネントの前にキー入力に反応するようにします。しかし、プログラムの最善の部分では完全にうまく動作しますが、TEditコンポーネントにフォーカスが当たっている間にエスケープキーを押すと、無効操作を示すためにWindowsが使用するサウンドが発行されます。それはまだうまく動作しますが、私は決して音を取り除くことはできませんでした。
この問題は何ですか?再現する
ステップ:
- 新しいVCLフォームアプリケーション、onKeyPressイベントのイベントをダブルクリックして、ダミーのコードを入力し、[イベント]タブで、真
にフォームのKeyPreviewの設定:
キーが#27の場合;
- は、フォームにTListBoxコンポーネント、TCheckBox、TEDITを追加し、Escキーを押してアプリケーション内のアプリケーション
- を試しに実行し、ダミーコード
- フォーカスTEDITとEscキーを押しによって指定され何も起こりません。何も起こりませんが、サウンドが再生されます。
これは私には言葉を残す...私は厳しいナットを割ったが、これは... aaaahhhh。アドバイスをいただきありがとうございます。とても感謝しております。 –
それは私たちすべてに起こります。いつでも、私はそれが盲目的に単純なものになるだろうと知っている間、私は少しずつバグで戦っています。それはちょうどそれが動作する方法です。 –