?? 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 + -