一个WORD型变量赋一个负数,为何不报错?

stall 2003-08-20 08:22:33
procedure TForm1.Button1Click(Sender: TObject);
var
a,b:integer;
aa:word;
begin
a:=600;b:=400;
aa:=b-a;
end;

运行竟不报错,(但用aa:=400-600就报错)我本想用try... except...来防止B小于A的,这样就用不了了,各位有知道原因的吗?
...全文
805 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
SuperSeventh 2003-08-20
  • 打赏
  • 举报
回复
每次都有收获! :)
lxpbuaa 2003-08-20
  • 打赏
  • 举报
回复
madyak(无天)(★★):
我用的是宽带,呵呵,快一点!不好意思!

—————————————————————————————————
宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
—————————————————————————————————
madyak 2003-08-20
  • 打赏
  • 举报
回复
TO: lxpbuaa(桂枝香在故国晚秋) 我发第一贴时,没看你发的贴,我是播号上网,经常发贴失败,发得要慢些!
你得更实用些!属于局部范围检查,我的是全部范围检查!
madyak 2003-08-20
  • 打赏
  • 举报
回复
TO: lxpbuaa(桂枝香在故国晚秋) 我发第一贴时,没看你发的贴,你得更实用些!属于局部范围检查,我的是全部范围检查!
madyak 2003-08-20
  • 打赏
  • 举报
回复
是得,二者基本一样!
draking 2003-08-20
  • 打赏
  • 举报
回复
又学了一点,不错不错!
lxpbuaa 2003-08-20
  • 打赏
  • 举报
回复
madyak(无天):
选中Range Checking等价于:{$R+} :》:》:》:》

—————————————————————————————————
宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
—————————————————————————————————

madyak 2003-08-20
  • 打赏
  • 举报
回复
想报错要这样才行:
在IDE下,Project->Options->Compiler页下,在Runtime Errors 选中Range Checking

然后Save all,再Build All

试试看!
lxpbuaa 2003-08-20
  • 打赏
  • 举报
回复
建议不要这么作,如果一定要实现你的效果。请这样:
var
a,b:integer;
aa:word;
begin
a:=600;b:=400;
{$R+} //执行越界检查
aa:=b-a;
{$R-}
//…………
end;

—————————————————————————————————
宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
—————————————————————————————————

5,379

社区成员

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

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