如何判断用户输入的合法性?(100分)

  • 主题发起人 主题发起人 马晓光
  • 开始时间 开始时间

马晓光

Unregistered / Unconfirmed
GUEST, unregistred user!
各位,这是一个非数据库问题,我想让用户在Tedit中只输入Integer类型的数据,
不知如何判断用户是否输入了合法的数据,请问判断函数该如何写?
谢谢!

我的邮箱是 happybrain@sohu.com
 
procedure EditKey_Press(Sender: TObject; var Key: Char);
begin
if not (Key in ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']) then
begin
key := #0;
end;

end;
 
procedure EditKey_Press(Sender: TObject; var Key: Char);
begin
if not (Key in [0..9]) then
begin
key := #0;
end;
end;

 
procedure EditKey_Press(Sender: TObject; var Key: Char);
begin
if not (Key in ['0'..'9']) then
begin
key := #0;
end;
end;
楼上的朋友的[0..9]会出现类型错误。
 
同意樓上
 
同意雨季飘零,
 
//只允许录入数值
procedure TfrmFilterLbcx.edt_YearKeyPress(Sender: TObject; var Key: Char);
begin
if (ord(key)<>8) and not((ord(key)>=48) and (ord(key)<=57)) then
key:=#0;
end;
 
procedure EditKey_Press(Sender: TObject; var Key: Char);
begin
if not (Key in ['0'..'9']) then
begin
key := #0;
end;
end;
 
procedure EditKey_Press(Sender: TObject; var Key: Char);
begin
if(Key<>#8)and(not(Key in ['0'..'9'])) then
begin
Key:=#0;
ShowMessage("只能输入数字!");
end;
end
 
还可以用MaskEdit
 
用MASKEDIT界面不美观。
虽然前面几种方法都可行,但是最好在onexit里再检验一下输入是否合法。。因为用户可用
用粘贴或其它方式来完成输入工作。

onkeypress;
if not (Key in ['0'..'9',#13,#8,#46]) then//不应该把回车和DEL、BACKSPACE过滤掉
begin
key := #0;
end;
onexit;

try
inttostr(edit1.text);
except
showmessage('输入不合法');
end;
 
同意楼上
 
多人接受答案了。
 
后退
顶部