功能:運行打錯字,回退鍵重要,打對字實現“打勾”,與打錯字“打差”統計正確率,速度,圖形界面顯示鍵盤圖。。。(2萬行左右代碼)
Private Sub Text1_Change(Index As Integer)
On Error GoTo text1changewrong:
' Print Mid(Label1(myord Mod 7).Caption, begin + 1, myend - begin + 1)
MouseSetfocusOrAutoSetfocus = False '把是否用標點text1(0)標記變為不是(false)
Text1(Index).IMEMode = 9 '用於改變輸入法狀態
backyn = False '讓退格可以用
Label3.Caption = "myend" & Str(myend)
Label4.Caption = "begin" & Str(begin)
If key = 1 Then '如果k=1 '清空文本框
For i = 0 To 6
Text1(i).Text = ""
Text1(i).Enabled = False
Label2(i).Caption = ""
Next i
Text1(0).Enabled = True
key = 0
'此處應變題(出題, 待作:...........)
End If
If delete = 0 Then
myend = Text1(myord Mod 7).SelStart + 1
Else
myend = myend - 1
begin = begin - 1
End If
If myend - begin <> 0 Then
tmstr$ = Mid(Label1(myord Mod 7).Caption, begin, myend - begin)
dtstr$ = Mid(Text1(myord Mod 7).Text, begin, myend - begin)
If tmstr = " " And dtstr = " " Then
Label2(myord Mod 7).Caption = Label2(myord Mod 7).Caption & " "
yorn(Text1(Index).SelStart) = 2
' GoTo kung:
'這裏下
Else
If tmstr$ = dtstr$ Then
Label2(myord Mod 7).Caption = Label2(myord Mod 7).Caption + "√"
y = y + 1 '對的加壹個
Label5.Caption = "正確:" & Str(y) & " 個字"
yorn(Text1(Index).SelStart) = 1
Else
Label2(myord Mod 7).Caption = Label2(myord Mod 7).Caption + "×"
n = n + 1 '錯的加壹個
Label6.Caption = "錯誤:" & Str(n) & "個字"
yorn(Text1(Index).SelStart) = 0
End If
End If
End If
If y >= 1 Then '除數不可為0
Label7.Caption = "正確率:" & left(Str((y / (y + n)) * 100), 5) & "%" '在label7上顯示[正確率]
Correctness = left(Str((y / (y + n)) * 100), 5) '用於寫文件時用的
Else
Label7.Caption = "正確率:" & 0# & "%" '在label7上顯示[正確率]
Correctness = 0# '用於寫文件時用的
End If
If Text1(myord Mod 7).SelStart >= Len(RTrim(Label1(myord Mod 7).Caption)) Then
If Text1((Index + 1) Mod 7).Visible = False Then
MsgBox "正確:" & Str(y) & "個 " & Label7.Caption & Chr(13) & Chr(10) & "錯誤:" & Str(n) & "個 " & Label8.Caption, 64, "測試報告"
Close #1
'Form2.Show
Unload Me
Exit Sub
'水有文單
End If
Text1(myord Mod 7).SelStart = 1
myord = myord + 1
If myord Mod 7 = 0 Then
key = 1 '用key=1 表示要清空所有文本框
For m = 0 To 6
Text1(m).Enabled = True
Next m
End If
begin = 1
delete = 0
Label2(myord Mod 7).Caption = ""
For u = 0 To 6
Text1(u).Enabled = False
Next u
Text1(myord Mod 7).Enabled = True
If Text1(myord Mod 7).Visible = True Then Text1(myord Mod 7).SetFocus
Text1(myord Mod 7).Text = ""
End If
'*******************************此段用於locked文本框*******
If myord Mod 7 <> 0 Then Text1(myord Mod 7 - 1).Enabled = False
'***************************************************
begin = myend
Exit Sub
text1changewrong:
MsgBox "系統出錯,將要關閉!", 32, "系統提示"
Unload Me
End Sub
Private Sub Text1_GotFocus(Index As Integer)
Dim tuige As Integer '用於保存text、label 應退的格數
If MouseSetfocusOrAutoSetfocus = True Then Exit Sub
Text1(Index).IMEMode = 9 '用於改變輸入法狀態
If Text1(Index).Text <> "" Then backyn = True '未驗證
myord = Index
If Text1(myord Mod 7).Text = "" Then
begin = 1
myend = 0
Else
begin = Len(Text1(myord Mod 7).Text)
myend = Len(Text1(myord Mod 7).Text) + 1
Label2(myord Mod 7).Caption = left(Label2(myord Mod 7).Caption, Len(Text1(myord Mod 7).Text))
End If
If Index = 0 Then
If callkey = 0 Then
getnum = 0 '如果form1是剛打開,則從list1的第壹行開始讀數據
y = 0
n = 0
End If
callkey = callkey + 1
If callkey Mod 2 <> 0 Then
For i = 0 To 6
mytxt = List1.List(getnum)
getnum = getnum + 1
If Not (getnum > List1.ListCount) Then
'a: ' Line Input #1, mytxt
'If Not (Len(Trim(mytxt)) >= 1) Then GoTo a:
If Len(mytxt) > 37 Then mytxt = left(mytxt, 37)
'Label1(i).Left = Label1(i).Left + (Len(mytxt) - Len(LTrim(mytxt))) * (50 / 3)
'Label2(i).Left = Label1(i).Left + (Len(mytxt) - Len(LTrim(mytxt))) * (50 / 3)
'Text1(i).Left = Text1(i).Left + (Len(mytxt) - Len(LTrim(mytxt))) * (50 / 3)
Text1(i).left = 550 '每次都讓label的位置還原
Label1(i).left = 600 '每次都讓label的位置還原
Label2(i).left = 600 '每次都讓label的位置還原
Label1(i).Caption = RTrim(mytxt) '"***和國中華人民***和國中華人民***和國中華人民***和國中華人民***和國韋"
tuige = (Len(RTrim(mytxt)) - Len(Trim(mytxt))) * Int(7695 / 37)
Label1(i).Caption = Trim(Label1(i).Caption) '"***和國中華人民***和國中華人民***和國中華人民***和國中華人民***和國韋"
Text1(i).left = Text1(i).left + tuige '退
Label1(i).left = Label1(i).left + tuige '退
Label2(i).left = Label2(i).left + tuige '退
Text1(i).Text = ""
Label2(i).Caption = ""
Text1(i).MaxLength = Len(Trim(Label1(i).Caption))
Text1(i).Width = Label1(i).Width + 100
Label1(i).Visible = True
Label2(i).Visible = True
Text1(i).Visible = True
Else
'Label1(i - 1).Visible = False
' Label2(i - 1).Visible = False
' Text1(i - 1).Visible = False
Exit For
End If
Next i
End If
End If
ReDim yorn(Len(Label1(Index).Caption)) As Integer
End Sub
Private Sub Text1_KeyDown(Index As Integer, KeyCode As Integer, Shift As Integer)
'Text1(Index).IMEMode = 1
If KeyCode = 37 Or KeyCode = 39 Or KeyCode = 38 Or KeyCode = 40 Or KeyCode = 35 Or KeyCode = 36 Or KeyCode = 46 Then KeyCode = 0
If backyn = True And KeyCode = 8 Then KeyAscii = 0: Exit Sub: backyn = False
If KeyCode = 8 And Text1(myord Mod 7).SelStart <> 0 Then
If yorn(Text1(Index).SelStart) = 1 Then y = y - 1: Label5.Caption = "正確:" & Str(y) & " 個字" 'Else n = n - 1: Label6.Caption = "錯誤:" & Str(n) & "個字" '用於減少對與錯的量(y\n)
If yorn(Text1(Index).SelStart) = 0 Then n = n - 1: Label6.Caption = "錯誤:" & Str(n) & " 個字"
delete = 1
Label2(myord Mod 7).Caption = left(Label2(myord Mod 7).Caption, Len(Label2(myord Mod 7).Caption) - 1)
Text1(myord Mod 7).SelStart = myend - 1 'jjjjjjjjjjjjjjjjjjjj
Else
a:
delete = 0
End If
End Sub
。。。其它代碼不公開,但本人願意提供關鍵處代碼,以代參考,或者思路問題進行回答!請加本人的QQ:599299169