用一个函数即可搞定(利用的是Delphi的异常处理) function IsNumber(Const aStr:String):boolean;implementationfunction IsNumber(Const aStr:String):boolean; begin try StrToFloat(aStr); Result:=true; except Result:=False; end; end; 判断时只需用 if isNumber(Edit1.Text) then ShowMessage('是数字') else ShowMessage('不是数字');注意:在调试时可能会出错(和你的Delphi设置有关),但在编译后独立运行是正常的。
这的确用集合简单, 应该在Edit1.OnKeyPress(好像是这个事件,我不记得了)这样写:begin If not key in ['0..9',#8,#13] then begin key:=#0;edit1.setfocus; end;
可以使用val()函数来实现! 有代码如下: function IsNum(TempStr : String) : bool ;//TempStr 可以接受你的edit1.text var //返回TRUE 表明是数字 Temp : Double; Mark : integer; begin val(TempStr,Temp,Mark); result := Mark = 0; end;
function IsNumber(Const aStr:String):boolean;implementationfunction IsNumber(Const aStr:String):boolean;
begin
try
StrToFloat(aStr);
Result:=true;
except
Result:=False;
end;
end;
判断时只需用
if isNumber(Edit1.Text) then
ShowMessage('是数字')
else
ShowMessage('不是数字');注意:在调试时可能会出错(和你的Delphi设置有关),但在编译后独立运行是正常的。
应该在Edit1.OnKeyPress(好像是这个事件,我不记得了)这样写:begin
If not key in ['0..9',#8,#13] then begin key:=#0;edit1.setfocus;
end;
有代码如下:
function IsNum(TempStr : String) : bool ;//TempStr 可以接受你的edit1.text
var //返回TRUE 表明是数字
Temp : Double;
Mark : integer;
begin
val(TempStr,Temp,Mark);
result := Mark = 0;
end;