0


0

私はこのコードを持っています

procedure TForm1.Edit1KeyDown(送信者:TObject;変数キー:Word;シフト:TShiftState);そうでない場合はvar([Ord( '0').. Ord( '9')]を入力))でKey:= 0;終わり;

そしてそれはDelphi 2007でうまくいきました。 Delphi 2009にアップグレードしたときに文字を押し込もうとすると、その文字は受け入れられ、Key:= 0は入力をトラップしませんか?

誰もが同じ動作を経験しましたか?

3 Answer


13


これがDelphi 2007で機能したことを確認していますか? 私はちょうどDelphi 2007年と2009年にコードを試してみました。 両方とも同じように動作します(キーストロークは入力されません)数字だけを受け入れる場合は、OnKeyPressイベントを使用してKeyパラメータを#0に設定します。


3


  • OnKeyDown *はあなたに_scancode_を与えます。 * OnKeyPress *はあなたに_文字_を与えます。 私が覚えていることができるDelphiのすべてのバージョンでそのようになった。


0


Key:= 0; on `KeyDown`イベントを送信するには

Key:=HiWord(GetKeyState(0));

//do something