try
edit1.text:=floattostr(strToFolat(DateTime1_ed.text));
except
application.messagebox('请正确输入数值,'提示',MB_OK+MB_ICONEXCLAMATION);
exit;
end;
edit1.text:=floattostr(strToFolat(DateTime1_ed.text));
except
application.messagebox('请正确输入数值,'提示',MB_OK+MB_ICONEXCLAMATION);
exit;
end;
解决方案 »
- AstaClientdataset控件放在工作线程报错怎么办.
- 请问delphi里怎样调用oralcle数据库中的自定义函数
- 求RegExpr的一正则表达式,感谢啊!
- 关于一个在局域网中的特殊功能!!!
- dephi7自带的chartFX,在程序发布时,是否需要在用户机上进行注册,或带些什么文件吗?
- 数据导入问题 请指教!
- 各位老大,我一打开IE就死机,该怎么办呀!用什么工具可以杀掉这个病毒,谢谢!
- 如何在程序中打开指定的网叶,希望各位大哥不吝赐教!
- 大哥们,在ListView中,如何设置每个元素的长度啊?
- 如果知道一个外部程序关闭了。
- DBGRID中如何用SHIFT进行多行选择?
- 谁能告诉我用什么方法把一个Client端由Client传给Server端,然后由Server端保存在本机上!不能用FTP!50分一定给!
edit1.text:=floattostr(strToFolat(edit1.text));
except
application.messagebox('请正确输入数值,'提示',MB_OK+MB_ICONEXCLAMATION);
exit;
end;
Delphi组件栏中Sample中的SpinEdit控件的源代码,中间有一段
代码是你所要的。三少
或在onkeypress中判断是不是在0到9之间
I, Code: Integer;
begin
Val(I, Edit1.Text, Code);
if Code <> 0 then ShowMessage('Error');
end;
begin
edit1.text:='';
application.messagebox('你输入的不是数字','提示',mb_ok);
end;或者在EDIT1的ONPRESS事件中输入
if not key in['0'..'9'] then
begin
key=#0;
application.messagebox('你输入的不是数字','提示',mb_ok);
end;
if not key in['0'..'9'] then begin
key:#0;
showmessage('您输入的不是数字')
end;报错在if not key in['0'..'9'] then begin
类型不匹配!
begin
key:=chr(0);
showmessage('您输入的不是数字')
end;
strToFolat(edit1.text);
except
application.messagebox('请正确输入数值,'提示',MB_OK+MB_ICONEXCLAMATION);
exit;
end;
还有就是你在调试时把debug的选项设置一下,这样就不会捕捉不到错误了。
我觉得这是最好的方法。
begin //否則輸入數錯誤如何修改
key:=#0;
end;
而要单独运行程序。
function StrIsNumber(NumStr : string) : boolean;
begin
result := true;
try
StrToInt(NumStr);
except //触发 EConvertError
result := false;
end;
end;【ePing】提到的TSpinEdit处理数字的原代码是指以下
function TSpinEdit.IsValidChar(Key: Char): Boolean;
begin
Result := (Key in [DecimalSeparator, '+', '-', '0'..'9']) //DecimalSeparator是小数分隔符,一般是'.'
or ((Key < #32) and (Key <> Chr(VK_RETURN)));
if not FEditorEnabled and Result and ((Key >= #32) or
(Key = Char(VK_BACK)) or (Key = Char(VK_DELETE))) then
Result := False;
end;procedure TSpinEdit.KeyPress(var Key: Char);
begin
if not IsValidChar(Key) then
begin
Key := #0;
MessageBeep(0)
end;
if Key <> #0 then inherited KeyPress(Key);
end;
你可以参考一下,适当地修改一定能行!
想偷懒的话,那就去用组件!
function ZsIsNumber(s: string): Boolean; { 返回是否是正确的数字符串 }
var
x: Extended;
Code: Integer;
begin
Val(s, x, Code);
Result := Code = 0;
Code := Trunc(x); { 为消除编译中的Hint }
end; { ZsIsNumber }//调用
if not ZsIsNumber(Edit1.Text) then ShowMessage('你输入的不是数字');
//to Cyril: 你真的都试了?
//to Cyril: 你用的是Delphi吗?
//to Cyril: 你能确定你输入的不是中文全角字母?
//to Cyril: 我就不说这么多了
//to Cyril: 最后一句
//to Cyril: 真的就只说一句
//to Cyril: 如果你看到的不是最后一句,也不能怪你
//to Cyril: 我其实真的也只想说一句
//to Cyril: 看来大家都有一点烦
//to Cyril: 我还是少说一句的好
//to Cyril: 试一下吧
//to Cyril: 你能确定你真...........