VB6 鬼怪二三事

本人最近灵异小说看多了,遇到一些出乎意料的现象都喜欢归咎于“灵异事件”。

 

在使用VB6编程时,本人就遇到过几个诡异的现象。有些现象经过思考后可以找到其中的原因,但是有些的至今没找到答案。

 

先来看看已经找到答案的:

 

Msgbox Text1.Text - Text2.Text。

 

如果在Text1中输入12,Text2中输入12.8,返回的结果不是预想的0.8,而是 -800000000000001。出现这种现象其实是“精度”在作怪。

将代码修改为:

Dim i as Single

i=Text1.Text - Text2.Text

Msgbox i

 

 

再来看看本人至今未找到答案的现象。

 

1.

学过VB的都知道Initialize作为窗体初始化事件要先于Load事件发生。但是,也有例外的时候。例如在Initialize和Load事件中都对窗体的标题进行设置。

 

Private Sub Form_Initialize()

    Me.Caption="1"

End Sub

 

Private Sub Form_Load()

    Me.Caption="2"

End Sub

如果按照正常的事件响应顺序窗体的标题栏中应显示2,但返回的结果为1。

 

2.在过程的形式参数前使用Byref,代表地址传递。当在过程中的形式参数被修改,那么实际参数的值也随之改变。但是,世事无绝对:

Private Sub abc(Byref i as Integer)

    i=12

End Sub

 

Private Sub Command1_Click()

    Dim i

    i=3

   abc(i)

   MsgBox i

End Sub 

上述代码执行没有得到预想的12,返回值仍然为初始值3。

 

 

 

 

 

 

 

 

悬疑 玄幻 科幻 灵异 鬼怪 编程词典 vb bccd

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值