許せない心理テスト

C-Builder V5 で数値(数字)を入力すべきところで、実行時に文字等を入力すると、システムからエラーメッセージが表示されるので、これを防ぐ為にEditで入力時に数字以外をはじきたいのですが、可能でしょうか。

以前C-Builder V4で作った時は出来た様な気がしたのですが、どの様にやったか思い出せないでいます。

ネットではC-Builderのサンプルが見つからず、Delphiのサンプルでは昔の記憶と同じ処理を行っていましたが、これだと文字判定以前にEditの枠に既に文字が入ってしまっており、文字の排除が出来ませんでした。
どなたか数字以外をはじく方法ご存知の方、お教え下さい。

// Edit1->ImeMode = imDisable; // 初期化部分で実行

void __fastcall TForm1::Edit1KeyDown(TObject *Sender, WORD &Key,
TShiftState Shift)
{
if(Key<48 || Key>57)
{ Key = 0;
}
}

A 回答 (1件)

KeyPressイベントでできます。



void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &Key)
{
if(Key < '0' || Key > '9')
Key = '\0';
}
    • good
    • 1
この回答へのお礼

有難う御座いました。KeyDown、KeyUp等色々やったつもりでしたがKeyPressを抜かしていた見たいです。

お礼日時:2005/08/17 18:33

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報