打字测试软件源码 vb,打字测试程序 VB代码

你好,你的代码里有下面三个错误。

第一个错误:

你的代码里,在cmdStart_Click()过程中的代码等于

Private Sub cmdStart_Click()

Dim dtmBeginTime As Date

dtmBeginTime = Time()

End Sub

这样的话,dtmBeginTime只是cmdStart_Click()过程中的一个局部变量,在该过程结束的时候就会被销毁,故你在cmdEnd_Click()过程中引用dtmBeginTime得到的值将是空的。

解决方法:将其在通用部分声明为公共变量,也可以像我下面这样取巧,利用txtSpeed.Text储存dtmBeginTime(因为控件本来就是公共的,可以把控件的属性视为公共的变量)。

第二个错误:

你的cmdEnd_Click()代码里定义了intTimeCost,却没有使用,从字面上看是想用来存储两次按下按钮的时间差,所以估计你这一行代码写错了:

dtmEndTime = DateDiff("s", dtmBeginTime, dtmEndTime)

应该改成

intTimeCost = DateDiff("s", dtmBeginTime, dtmEndTime)

第三个错误:

DateDiff返回值的类型是Date类型,而你的intTimeCost定义成了整型,所以用intTimeCost接收DateDiff的结果会发生溢出,解决方法是把intTimeCost定义为Date类型。

综上所述,最终修改的代码如下,亲测可用:

Private Sub cmdEnd_Click()

Dim intTimeCost As Date, intWordCount As Integer

Dim dtmBeginTime As Date, dtmEndTime As Date '这句可以省略,不过建议加上,这是好习惯

dtmEndTime = Time()

dtmBeginTime = txtSpeed.Text '获取刚刚存放在txtSpeed中的dtmBeginTime

intTimeCost = DateDiff("s", dtmBeginTime, dtmEndTime)

intWordCount = Len(txtInput.Text)

txtSpeed.Text = intWordCount / (intTimeCost / 60)

End Sub

Private Sub cmdStart_Click()

txtSpeed.Text = dtmBeginTime

End Sub

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值