关于try…except的问题!

qingchuns 2002-04-06 08:46:28
请看以下代码,为什么在edit1中输入的不是数字时,程序要自动报错,而不是进入except中,请问除了限制在edit1输入其它在数字外,还有其它方法吗?
procedure Tinfo.Button1Click(Sender: TObject);
var
dno:integer;
begin
if edit1.Text ='' then
begin
showmessage('请输入系号');
exit;
end;
try
dno:=strtoint(edit1.Text );
except
showmessage('输入有错,请重新输入');
exit;
end;
if not depttb.Locate('dno',dno,[]) then
begin
showmessage('找不到你所输入的系号');
exit;
end;
end;
...全文
37 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
yuanshengbing 2002-04-06
  • 打赏
  • 举报
回复
你是在编辑后F9直接运行的么,这样不行,要运行可执行文件才会出现自己的出错提示
suary 2002-04-06
  • 打赏
  • 举报
回复
全部输完后判断可以调用onexit
hj_cn 2002-04-06
  • 打赏
  • 举报
回复
EXIT虽然多了一点,但也没有关系。
你可以是在编译器运行那是DELPHI系统报错,但如果是单独的EXE就没关系的啦。
liuhelin 2002-04-06
  • 打赏
  • 举报
回复
你脱离delphi直接运行exe,就不会报错,
同意楼上的说法,要exit干什么
DeathCat 2002-04-06
  • 打赏
  • 举报
回复
不能在Delphi运行,直接运行EXE文件就不会错了.
BlueTrees 2002-04-06
  • 打赏
  • 举报
回复
靠!你用那么多exit干吗,不要在Except节中用exit试试看。
chechy 2002-04-06
  • 打赏
  • 举报
回复
1、不在Delphi中运行,这样程序不会报错。
2、将Tools|Debugger Options...中的Integrated debugging的勾去掉,也不会报错。
qingchuns 2002-04-06
  • 打赏
  • 举报
回复
我想等用户在全部输完以后,再作判断
chechy 2002-04-06
  • 打赏
  • 举报
回复
你可以在edit1的KeyPress事件中写:
if not (Key in ['0'..'9']) then
Key := #0; //或者也可以弹对话框报错

5,386

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧