标题菜鸟捉虫(23)
栏目软件世界
发布2001年23期
第21期“菜鸟捉虫”正确答案:
首先,On Error GoTo Loop语句不能跨越函数的作用域范围;其次,工作变量Result是一个整型,如遇A除以B有余数,则会自动四舍五入,所以Result的值遇A除以B有余数时就不正确了。
注:若使用Resume 语句(当然,用其它的方法也可),如果错误和错误处理程序出现在同一个过程中,则从产生错误的语句恢复运行。如果错误出现在被调用的过程中,则从最近一次调用包含错误处理程序的过程的语句处恢复运行。
修改后的程序如下:
Private Sub command1_click()
Dim A As Double,B As Double,Result As Double
On Error GoTo Loop1
A = Val(Text1.Text)
B = Val(Text2.Text)
Result = A / B
Text3.Text = Result
Exit Sub
'//去掉子程序ErrorFunc,加入如下代码
Loop1:
MsgBox "除数不能为零"
End Sub
以下是第21期“菜鸟捉虫”幸运读者名单(奖品为最新的《电脑报配套光盘》系列中的一款)
天津 黄 燕 山东 翟海军 吉林 张双
浙江 李海江 四川 党卫中
本期题目:
现有一程序,其功能是实现“飞字技术”。要求实现字体从左至右穿越屏幕消失后,再次循环穿越屏幕的过程。本程序中有一个Label和1个Timer控件。Label1的Caption属性设置为“欢迎光临”。但运行程序后却达不到预想的效果,请找出其中的错误。
Private Sub Form_Load()
Label1.Left = -Label1.Width
End Sub
Private Sub Timer1_Timer()
Label1.Left = Label1.Left + 50
Label1.Move Label1.Left
End Sub