|
16番会議室「玉石混淆みんなで作るSample蔵」に寄せられたサンプル
"数値入力項目で範囲外の入力を抑止する"
{ 数値の入力項目で範囲外の値を入力できないようにします。
例) 0〜100までを有効範囲とした場合
}
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
var
AfterText: String;
begin
Case Key of
#$0..#$20: Exit; // 制御コードだったら処理しない
'0'..'9':; // 数字は範囲チェックにまわす
else // 数字以外は入力できない
begin
MessageBeep(MB_ICONEXCLAMATION);
Key := #0;
Exit;
end;
end;
With Edit1 do
begin
// 入力後のテキストを求める
AfterText := Copy(Text, 1, SelStart) + Key
+ Copy(Text, SelStart + SelLength + 1, Length(Text));
// 範囲チェック ( 0 〜 100 )
if StrToInt(AfterText) in [0..100] then Exit;
MessageBeep(MB_ICONEXCLAMATION);
Key := #0;
end;
end;
JBC01362 アトリエ まっちゃん
Original document by Atelier Macchan 氏 ID:(JBC01362)
ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum の16番会議室「玉石混淆みんなで作るSample蔵」に投稿されたサンプルです。これらのサンプルはボーランド株式会社がサポートする公式のものではありません。また、必ずしも動作が検証されているものではありません。これらのサンプルを使用したことに起因するいかなる損害も投稿者、およびフォーラムスタッフはその責めを負いません。使用者のリスクの範疇でご使用下さい。
Copyright 1996-2002 Delphi Users' Forum
|