注册 登录
编程论坛 VB6论坛

vb 关于画线时,出现错误提示,困惑?不解?

William1949 发布于 2022-09-05 09:13, 1395 次点击
第一步:新建1个工程。保持原始状态,(不要设置任何属性,这样出错时,就可以排除自己胡乱设置而导致的出错)

第二步:把以下代码复制到工程中:
程序代码:

Private Sub Command1_Click()
    Const Pi = 3.1415926
    Me.Circle (100, 100), 80, vbBlue
    Debug.Print 2 * 3.14
End Sub


第三步:在“Debug.Print 2 * 3.14”这一行设置断点,然后单击Command1,之后 程序就会中断在该行。

第四步:修改中断行的代码,随意修改,例如:Debug.Print 100 * 3.14

第五步:再按F5(或F8),之后就会出现错误!
只有本站会员才能查看附件,请 登录


搞不懂 为啥会这样?
需要对以下问题 求解:
1、是我电脑问题?还是所有电脑会出现这样错误,要请你们大家帮忙测试一下。
2、讲解一下出错原因。


其实,这错误并不严重,只需重启vb,就行了,但动不动就出现,挺烦的。

诚谢!!!
6 回复
#2
风吹过b2022-09-05 11:57
测试了一下,的确报错。

这种问题 在画线命令中也遇到过。随机出现,不是必然。
估计是 VB6 的BUG 。

经过测试, 你这行代码的错误触发条件是:
1、前面必须有绘图命令。
2、这行命令里有中断,然后修改了命令,会触发重新解释当前命令行。
3、这行命令里使用了 过程级 的常量。 猜测只重新翻译当前行,因不是解释整个过程,导致 过程级的 常量 没有被解析。

我的测试代码如下:
程序代码:
Const pi = 3.1415926
Dim a As Single
   
Line (10, 10)-(1000, 1000)

Stop
a = 4 * pi



[此贴子已经被作者于2022-9-5 12:02编辑过]

#3
风吹过b2022-09-05 11:58
解决办法:我想到的就二个方面。
1、常量定义,放到外面,定义为窗体级。
2、不使用常量,而定义为变量。

#4
yuma2022-09-05 17:43
Win10系统64位下测试,没有出现任何错误提示,请知悉。

按照你说的的方法,没有能够重现错误提示。

只有本站会员才能查看附件,请 登录


#5
William19492022-09-06 10:25
回复 4楼 yuma
知道了,感谢!感谢!感谢!
#6
William19492022-09-06 10:49
回复 2楼 风吹过b
你说的没错。就是随机的。

我以前遇到过几次,想再重现这种错误时,它又不出现了,所以很难找到原因。

今天是“忍无可忍”了,才想认真研究一下,经过反复测试,才发现 只要给过程中加 Const ,就铁定会出现。

但这不是绝对的,我以前写代码时,没有加过 Const,也会出现,现在是模拟不出来哪种场景了。

vb 自带的绘图命令,我还真用不惯。

多谢回复!!!
#7
yuma2022-09-06 20:32
回复 6楼 William1949
当你下次再出现这种情况时,请立即到虚拟机WINXP、Win7系统下测试,你就明白什么原因了。
1