0

Delphi 7 エンタープライズ エディションを使用しており、アプリケーションは Windows XP でビルドされ、Windows XP と Windows 7 の両方でテストされています。

私たちが保守しているアプリケーションで、奇妙なことが起こっています。何らかの理由で、「-」キー (qwerty レイアウト、「0」キーと「=」キーの間) を押してもまったく登録されません。

見つかった編集の OnKeyDown、フォームの OnKeyDown (キー プレビューありとなし)、さらに ProcessMessage ルーチンをチェックインしましたが、このキーのイベントはアプリケーションに届きません。OnKeyPress でも同じ結果が得られます。

はい、テンキーの「-」キーは機能します。また、この動作はこのアプリケーションでのみ見られますが、unit1.pas のデフォルト フォームの OnKeyDown のみを実装して新しいアプリケーションを作成した場合。それは機能します。

そのため、この 1 つのキーを適切に無視するようにアプリケーションに指示することができました。これをどのように(元に)行うことができるか考えている人はいますか?

4

1 に答える 1

2

David のコメントは正しい方向に進んでいます。何が起こっているのかを理解するまで、(バージョン管理を使用して)アプリを削除できます。ただし、次の概念も理解する必要があると思います。

  1. フォームの OnKeyDown イベントは、キーボード ショートカットが移動できる唯一の場所ではありません。Sertac のコメントがあるのはそのためです。

  2. アプリケーションの外部にある何かがそのキーボード キーをトラップしている可能性があります (ただし、これは Control または Alt + Key の組み合わせでより一般的です)。

  3. フォーム内の何か、またはアプリケーションの他の場所がそのキーを取得して消費している可能性があります。

  4. ここにKeyPreviewに関する良い記事があります。それも理解する必要があります。

于 2012-05-05T01:07:28.550 に答える