⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 typeform.frm

📁 一个简单的打字练习东东
💻 FRM
📖 第 1 页 / 共 4 页
字号:
 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 + -