Try.......Except (finally) 报错(15分)

  • 主题发起人 主题发起人 milesmaqi
  • 开始时间 开始时间
M

milesmaqi

Unregistered / Unconfirmed
GUEST, unregistred user!
Procedure button1click(Sender:TObjects);
var
i,j:integer;
begin
try
x:=strtoint(edit1.text);
y:=strtoint(edit2.text);
except
messagedlg('只能输入数字!',mterror,[mbok],0)
end;
end;
end;
为什么每次我在Edit1,Edot2,中输入Stroing,后按下Button1click,
每次都是程序先报错(不执行Messagedlg),而后中止,如果再运行一次此程序的话,才会执行
Messagedlg('')
 
你是在delphi的IDE里运行程序吧
直接运行你的可执行程序试试!
 
在IDE环境下try也是报错的
编译好的exe执行起来就正常了
 
这是delphi在您编程环境下便于调试
所以try下也报错
编译好的exe执行起来就正常了.
所以你要测试try的话,应该直接运行Exe文件!
 
你何不在Edit1 and Edit2 的keypress事件里面判断,
IF key not in ['0'..'9'] THEN BEGIN
Key:=0;
messagedlg('只能输入数字!',mterror,[mbok],0);
END;
这样就不会有错误产生,岂不是更好?仅供参考!
 
这个是delphi编辑环境下的规定,
如果你不想这样,可以这样来设置Tools--->Debugger options--->language exception页
再将Stop on Delphi exception中的钩去掉就可以了
 
你何不在Edit1 and Edit2 的keypress事件里面判断,
IF key not in ['0'..'9'] THEN BEGIN
Key:=0;
messagedlg('只能输入数字!',mterror,[mbok],0);
END;
这样就不会有错误产生,岂不是更好?仅供参考!


同意!我一直用這種方法,只是今天來遲了一點...[:)]
 
后退
顶部