📄 typeform.frm
字号:
Dim after_number As Integer '1~~44
Public curr_time As Long
'该函数为 在产生的随机数后在 按扭的控件数组选择一个按扭 变黄
'作为要打的字符
Private Sub Command1_Click(Index As Integer)
Select Case Index
Case 1 '1
Command1(Index).BackColor = &H80FFFF
before_random_number = Index
Case 2 '1
Command1(Index).BackColor = &H80FFFF
before_random_number = Index
Case 3 '3
Command1(Index).BackColor = &H80FFFF
before_random_number = Index
Case 4 '4
Command1(Index).BackColor = &H80FFFF
before_random_number = Index
Case 5 '5
Command1(Index).BackColor = &H80FFFF
before_random_number = Index
Case 6 '6
Command1(Index).BackColor = &H80FFFF
before_random_number = Index
Case 7 '7
Command1(Index).BackColor = &H80FFFF
before_random_number = Index
Case 8 '8
Command1(Index).BackColor = &H80FFFF
before_random_number = Index
Case 9 '9
Command1(Index).BackColor = &H80FFFF
before_random_number = Index
Case 10
Command1(Index).BackColor = &H80FFFF
before_random_number = Index
Case 11
Command1(Index).BackColor = &H80FFFF
before_random_number = Index
Case 12
Command1(Index).BackColor = &H80FFFF
before_random_number = Index
Case 13
Command1(Index).BackColor = &H80FFFF
before_random_number = Index
Case 14
Command1(Index).BackColor = &H80FFFF
before_random_number = Index
Case 15
Command1(Index).BackColor = &H80FFFF
before_random_number = Index
Case 16
Command1(Index).BackColor = &H80FFFF
before_random_number = Index
Case 17
Command1(Index).BackColor = &H80FFFF
before_random_number = Index
Case 18
Command1(Index).BackColor = &H80FFFF
before_random_number = Index
Case 19
Command1(Index).BackColor = &H80FFFF
before_random_number = Index
Case 19
Command1(Index).BackColor = &H80FFFF
before_random_number = Index
Case 20
Command1(Index).BackColor = &H80FFFF
before_random_number = Index
Case 21
Command1(Index).BackColor = &H80FFFF
before_random_number = Index
Case 22
Command1(Index).BackColor = &H80FFFF
before_random_number = Index
Case 23
Command1(Index).BackColor = &H80FFFF
before_random_number = Index
Case 24
Command1(Index).BackColor = &H80FFFF
before_random_number = Index
Case 25
Command1(Index).BackColor = &H80FFFF
before_random_number = Index
Case 26
Command1(Index).BackColor = &H80FFFF
before_random_number = Index
Case 27
Command1(Index).BackColor = &H80FFFF
before_random_number = Index
Case 28
Command1(Index).BackColor = &H80FFFF
before_random_number = Index
Case 29
Command1(Index).BackColor = &H80FFFF
before_random_number = Index
Case 30
Command1(Index).BackColor = &H80FFFF
before_random_number = Index
Case 31
Command1(Index).BackColor = &H80FFFF
before_random_number = Index
Case 32
Command1(Index).BackColor = &H80FFFF
before_random_number = Index
Case 33
Command1(Index).BackColor = &H80FFFF
before_random_number = Index
Case 34
Command1(Index).BackColor = &H80FFFF
before_random_number = Index
Case 35
Command1(Index).BackColor = &H80FFFF
before_random_number = Index
Case 36
Command1(Index).BackColor = &H80FFFF
before_random_number = Index
Case 37
Command1(Index).BackColor = &H80FFFF
before_random_number = Index
Case 38
Command1(Index).BackColor = &H80FFFF
before_random_number = Index
Case 39
Command1(Index).BackColor = &H80FFFF
before_random_number = Index
Case 40
Command1(Index).BackColor = &H80FFFF
before_random_number = Index
Case 41
Command1(Index).BackColor = &H80FFFF
before_random_number = Index
Case 42
Command1(Index).BackColor = &H80FFFF
before_random_number = Index
Case 43
Command1(Index).BackColor = &H80FFFF
before_random_number = Index
Case 44
Command1(Index).BackColor = &H80FFFF
before_random_number = Index
Case 45
Command1(Index).BackColor = &H80FFFF
before_random_number = Index
End Select
End Sub
'判断用户 所打字符是否正确
'测试开始
Private Sub Command2_Click()
Dim i As Integer
Dim image_path As String
If Right(App.Path, 1) <> "\" Then
image_path = App.Path & "\" & "Hear.ico"
Else
image_path = App.Path & "Hear.ico"
End If
Image1.Picture = LoadPicture(image_path)
Timer1.Enabled = True '启动计时器
'first_number = Int(10 * Rnd + 1) '第一个键盘数
'after_number = first_number
'Call Command1_Click(first_number)
before_random_number = 0
type_allchar = 0
Timer2.Enabled = True
curr_time = 0 '打字时间停止器
mm = 0
ss = 0
ms = 0
'为保证在从新开始时 所以button 为红色
For i = 1 To 45 Step 1
Command1(i).BackColor = &HC0C0FF
Next i
Command2.Enabled = False
End Sub
Private Sub Command3_Click()
End
End Sub
Private Sub Command4_Click()
Unload Me '卸在窗体
mainForm.Show '显示主界面
End Sub
Private Sub exit_Click()
End
End Sub
Private Sub Form_KeyPress(KeyAscii As Integer)
' Debug.Print KeyAscii
If type_current_char = UCase(Chr(KeyAscii)) Then '打字正确
Label10.Caption = ""
type_right = type_right + 1
Label7.Caption = Str(type_right)
Command1(after_number).BackColor = &HC0C0FF
Label10.Caption = UCase(Chr(KeyAscii))
' Call Timer1_Timer
End If
End Sub
Private Sub Form_Load()
'停止计时器
type_right = 0 '测试正确的字符数
Timer1.Enabled = False
'Command2.BackColor = &HC0C0FF
Label11.Caption = type_show
'当前所用时间赋为 0
mm = 0
ss = 0
ms = 0
'定义时间显示格式
Label13.Caption = Format(mm, "00") + "分" + ":" + _
Format(ss, "00") + "秒" + ":" + _
Format(ms, "00") + "毫"
curr_time = 0
End Sub
'在卸在窗体是做清除工作
Private Sub Form_Unload(Cancel As Integer)
End Sub
'该计时器在键盘上随机产生字符
Private Sub Timer1_Timer()
Select Case before_random_number
Case 0
Case 1
Command1(before_random_number).BackColor = &HC0C0FF
Case 2
Command1(before_random_number).BackColor = &HC0C0FF
Case 3
Command1(before_random_number).BackColor = &HC0C0FF
Case 4
Command1(before_random_number).BackColor = &HC0C0FF
Case 5
Command1(before_random_number).BackColor = &HC0C0FF
Case 6
Command1(before_random_number).BackColor = &HC0C0FF
Case 7
Command1(before_random_number).BackColor = &HC0C0FF
Case 8
Command1(before_random_number).BackColor = &HC0C0FF
Case 9
Command1(before_random_number).BackColor = &HC0C0FF
Case 10
Command1(before_random_number).BackColor = &HC0C0FF
Case 11
Command1(before_random_number).BackColor = &HC0C0FF
Case 12
Command1(before_random_number).BackColor = &HC0C0FF
Case 13
Command1(before_random_number).BackColor = &HC0C0FF
Case 14
Command1(before_random_number).BackColor = &HC0C0FF
Case 15
Command1(before_random_number).BackColor = &HC0C0FF
Case 16
Command1(before_random_number).BackColor = &HC0C0FF
Case 17
Command1(before_random_number).BackColor = &HC0C0FF
Case 18
Command1(before_random_number).BackColor = &HC0C0FF
Case 19
Command1(before_random_number).BackColor = &HC0C0FF
Case 20
Command1(before_random_number).BackColor = &HC0C0FF
Case 21
Command1(before_random_number).BackColor = &HC0C0FF
Case 22
Command1(before_random_number).BackColor = &HC0C0FF
Case 23
Command1(before_random_number).BackColor = &HC0C0FF
Case 24
Command1(before_random_number).BackColor = &HC0C0FF
Case 25
Command1(before_random_number).BackColor = &HC0C0FF
Case 26
Command1(before_random_number).BackColor = &HC0C0FF
Case 27
Command1(before_random_number).BackColor = &HC0C0FF
Case 28
Command1(before_random_number).BackColor = &HC0C0FF
Case 29
Command1(before_random_number).BackColor = &HC0C0FF
Case 30
Command1(before_random_number).BackColor = &HC0C0FF
Case 31
Command1(before_random_number).BackColor = &HC0C0FF
Case 32
Command1(before_random_number).BackColor = &HC0C0FF
Case 33
Command1(before_random_number).BackColor = &HC0C0FF
Case 34
Command1(before_random_number).BackColor = &HC0C0FF
Case 35
Command1(before_random_number).BackColor = &HC0C0FF
Case 36
Command1(before_random_number).BackColor = &HC0C0FF
Case 37
Command1(before_random_number).BackColor = &HC0C0FF
Case 38
Command1(before_random_number).BackColor = &HC0C0FF
Case 39
Command1(before_random_number).BackColor = &HC0C0FF
Case 40
Command1(before_random_number).BackColor = &HC0C0FF
Case 41
Command1(before_random_number).BackColor = &HC0C0FF
Case 42
Command1(before_random_number).BackColor = &HC0C0FF
Case 43
Command1(before_random_number).BackColor = &HC0C0FF
Case 44
Command1(before_random_number).BackColor = &HC0C0FF
Case 45
Command1(before_random_number).BackColor = &HC0C0FF
End Select
Randomize
'随机产生1~44个数字与键盘上的一个键对应
after_number = Int(45 * Rnd + 1)
'Command1(after_number).SetFocus
' Debug.Print after_number
Call Command1_Click(after_number)
type_allchar = type_allchar + 1 '记录一共的字符数
Label5.Caption = Str(type_allchar)
type_current_char = Command1(after_number).Caption '要打的字符
End Sub
'该时钟显示当前打字所用时间
'1000 毫秒等于 1 秒
'在vb中当 时钟的间隔 小于50ms(Timer2.Intreval<50) 时钟的性能是比较差的
'要真的精确到毫秒要用到 Windows 的API 的两个函数
'(1)Private Declare Function QueryPerformanceFrequency Lib "kernel32" _
(lpFrequency As LARGE_INTEGER) As Long
'(2)Private Declare Function QueryPerformanceCounter Lib "kernel32" _
(lpPerformanceCount As LARGE_INTEGER) As Long
'怕把函数搞难了 没用
'//这个地址有介绍
'http://www.programfan.com/article/showarticle.asp?id=1375
'为了保证性能 为让 1s =100 ms
Private Sub Timer2_Timer()
curr_time = CLng(curr_time) + 1
ms = ms + 1 '毫秒+1
If ms >= 100 Then '1ms =1000s
ms = 0
ss = ss + 1 '秒+1
If ss >= 60 Then
mm = mm + 1
ss = 0
End If
End If
Label13.Caption = Format(mm, "00") + "分" + ":" + _
Format(ss, "00") + "秒" + ":" + _
Format(ms, "00") + "毫"
DoEvents
'测试时间到了 停止测试
If curr_time >= (type_time / 10) Then
Timer2.Enabled = False
Timer1.Enabled = False
'计算正确率
type_percent = (type_right / type_allchar) * 100
Label9.Caption = Str(type_percent) & "%"
Command2.Enabled = True
End If
End Sub
'返回到主界面
Private Sub typemain_Click()
Unload Me '卸在窗体
mainForm.Show '显示主界面
End Sub
' 重新设置时间
Private Sub typetime_Click()
Unload Me
setgameForm.Show
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -