光判断是否数字的话,可以用isnumeric procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); begin if IsNumeric(Key) then ShowMessage('Numeric') else ShowMessage('other'); end;
在onkeypress中判断, if key 是 字符(asscii码)then 。 if key 是 数字(asscii码)then 。
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); begin if key in ['0'..'9'] then showmessage('ok'); end;
//var i:real; begin try if strtofloat(edit1.text)<>0 then ;//此处if ... then ..不作任何处理 except showmessage('不是数字'); end;
try if strtofloat(edit1.text)<>0 then ;//此处if ... then ..不作任何处理 except showmessage('不是数字'); 或:::: 逐位判断ord(copy(edit1.text,i,1))的ASC码值是否在数字范围内
第二:可用Val函数判断Edit1.Text里有没有非数字的字符,详细用法看帮助吧
看看onKeyPress中的Char等于什么东西!
或者循环Edit1.text里的每个字符,看看是否符合字符或者是数字,先看一下数字的ASCII码范围,再看看字符的Ascii范围!
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if IsNumeric(Key) then ShowMessage('Numeric')
else
ShowMessage('other');
end;
if key 是 字符(asscii码)then 。
if key 是 数字(asscii码)then 。
begin
if key in ['0'..'9'] then
showmessage('ok');
end;
begin
try
if strtofloat(edit1.text)<>0 then ;//此处if ... then ..不作任何处理
except
showmessage('不是数字');
end;
if strtofloat(edit1.text)<>0 then ;//此处if ... then ..不作任何处理
except
showmessage('不是数字');
或::::
逐位判断ord(copy(edit1.text,i,1))的ASC码值是否在数字范围内