人人做人人澡人人爽欧美,国产主播一区二区,久久久精品五月天,羞羞视频在线观看免费

當(dāng)前位置:蘿卜系統(tǒng)下載站 > 技術(shù)開發(fā)教程 > 詳細(xì)頁面

用VB6.0設(shè)計(jì)一個打字練習(xí)軟件

用VB6.0設(shè)計(jì)一個打字練習(xí)軟件

更新時間:2022-08-25 文章作者:未知 信息來源:網(wǎng)絡(luò) 閱讀次數(shù):

秦凱

  記得以前在學(xué)校里剛接觸電腦時,首先掌握的是學(xué)會打字,那時的操作系統(tǒng)都是DOS的,界面比較單調(diào),現(xiàn)在進(jìn)入WINXP時代,所以打字軟件也要跟潮流了!所以我用VB6.0寫了一個打字小軟件,主要步驟如下,供各位VB fans參考:

  1) 首先新建一EXE工程

  在工程菜單-部件菜單中選擇MICROSOFT COMMON DIALOG CONTROL 6.0(SP3)和MICROSOFT WINDOWS COMMON CONTROLS 6.0(SP4)兩項(xiàng),在工程菜單-引用菜單中選擇MICROSOFT SCRIPTING RUNTIME項(xiàng),然后保存工程,再在窗體中加入控件(部分),列表如下:

菜單 NAME:mnuPractice CAPTION:Practice
子菜單 NAME:mnuStart CAPTION:Start Practice
  NAME:mnuPause CAPTION:Pause Practice
  NAME:mnuResume CAPTION:Resume Practice
  NAME:mnuCustom CAPTION:Custom Practice
  NAME:mnuRestart CAPTION:Restart Practice
  NAME:mnuExit CAPTION:Exit
狀態(tài)欄 NAME:Stautsbar1   
文本框 NAME:Text1(0) INDEX:0TABSTOP:FALSEVISIBLE:FALSE
標(biāo)簽  NAME:Label1(0)  INDEX:0VISIBLE:FALSEBACKSTYLE:0
圖片 NAME:Picture1 TABSTOP:FALSE
時鐘 NAME:Timer1 INTERVAL:1000 ENABLED:FALSE
對話框 NAME:CommonDialog1    
工具欄 NAME:Toolbar1    
(備注:文本框控件Text1(0)和Label1(0)放入Picture1控件中)
  2) 加入如下代碼:


'rowcount是練習(xí)文本的行數(shù),totalchar是練習(xí)文本的總字?jǐn)?shù)
Dim rowcount, totalchar As Integer
'mode是當(dāng)前練習(xí)狀態(tài):start為正在聯(lián)系,pause中止練習(xí),否則為等待狀態(tài)
'filename為練習(xí)文本文件的文件名
Dim mode, filename As String
'playsec為當(dāng)前練習(xí)所用的秒數(shù)
Dim playsec As Long
'------------------------------------------
Private Sub Form_Load()
 Dim i As Integer
 '調(diào)整Picture1控件的位置
 Picture1.Top = Toolbar1.Top + Toolbar1.Height + 10
 Picture1.Height = Picture2.Top - Picture1.Top
 '顯示當(dāng)前練習(xí)狀態(tài)
 StatusBar1.Panels(1).Text = "Status : Waiting..."
End Sub
'------------------------------------------
Private Sub Form_Unload(Cancel As Integer)
 '如果練習(xí)文本行數(shù)大于0,則將動態(tài)生成的輸入文本框和標(biāo)簽控件卸載
 If rowcount > 0 Then
  Dim i As Integer
  For i = 1 To rowcount
   Unload Label1(i)
   Unload Text1(i)
  Next
 End If
End Sub
'---------------------------------------------------------
Private Sub mnuCustom_Click() '自定義練習(xí)內(nèi)容
 On Error GoTo Error_Exit
 '彈出練習(xí)文本文件選擇框
 CommonDialog1.ShowOpen
 '如果選擇的文件名為空,則退出
 If CommonDialog1.filename = "" Then Exit Sub
 '如果當(dāng)前練習(xí)狀態(tài)不是等待狀態(tài),則停止當(dāng)前練習(xí)
 Timer1.Enabled = False
 playsec = 0
 Dim i As Integer
 For i = 1 To rowcount
  Unload Label1(i)
  Unload Text1(i)
 Next
 filename = CommonDialog1.filename
 '開始新的練習(xí),練習(xí)文本為用戶選擇的文本文件
 Call mnuStart_Click
 Exit Sub
Error_Exit:
 Exit Sub
End Sub
'------------------------------------------
Private Sub mnuExit_Click() '退出程序
 Timer1.Enabled = False
 Unload Me
End Sub
'------------------------------------------
Private Sub mnuPause_Click() '中止練習(xí)
 '如果當(dāng)前正在練習(xí),
 If mode = "start" Then
  Timer1.Enabled = False
  mode = "pause"
  'Picture1.Enabled = False
  StatusBar1.Panels(1).Text = "Status : Pausing..."
 End If
End Sub
'---------------------------------------------
Private Sub mnuRestart_Click() '重新練習(xí)
 '如果沒有開始練習(xí),則退出;否則先卸載動態(tài)生成的控件數(shù)組,
 '然后再開始練習(xí)
 If mode = "" Then Exit Sub
  Dim i As Integer
  mode = ""
  For i = 1 To rowcount
   Unload Label1(i)
   Unload Text1(i)
  Next
 Call mnuStart_Click
End Sub
'---------------------------------------------
Private Sub mnuResume_Click() '繼續(xù)練習(xí)
 '如果練習(xí)為中止?fàn)顟B(tài),則繼續(xù)練習(xí)
 If mode = "pause" Then
  Timer1.Enabled = True
  mode = "start"
  'Picture1.Enabled = True
  StatusBar1.Panels(1).Text = "Status : Starting..."
 End If
End Sub
'---------------------------------------------
Private Sub mnuStart_Click()
 '如果當(dāng)前正在練習(xí),則退出此過程
 If mode <> "" Then Exit Sub
 '申明一個文本流和一個文件系統(tǒng)對象
 Dim t As TextStream
 Dim i As Integer
 Dim b As FileSystemObject
 '創(chuàng)建一個文件系統(tǒng)對象
 Set b = New FileSystemObject
 Dim temp As String
 '如果當(dāng)前沒有練習(xí)文本文件,則采用默認(rèn)的文本文件進(jìn)行練習(xí)
 If filename = "" Then filename = App.Path + "\article\a.txt"
 '讀一個文本文件
 Set t = b.OpenTextFile(filename, ForReading, False)
 i = 0: totalchar = 0
 '如果沒有讀完,則繼續(xù)讀
 Do While Not t.AtEndOfStream
  temp = Trim(t.ReadLine)
  '如果當(dāng)前讀的行數(shù)據(jù)去掉空格后為空,則忽略此行數(shù)據(jù)
  If temp <> "" Then
   i = i + 1
   '動態(tài)生成控件數(shù)組,用于顯示練習(xí)文本數(shù)據(jù)和創(chuàng)建輸入欄
   Load Label1(i)
   Label1(i).Top = 500 * (i - 1) + i * 5
   Label1(i).Left = 20
   Label1(i).Caption = temp
   '如果顯示的練習(xí)文本長度大于Picture1的長度,
   '則截掉多余的文本
   Do While Label1(i).Width + Label1(i).Left > Picture1.Width
    Label1(i).Caption = Left(Label1(i), Len(Label1(i).Caption) - 1)
   Loop

   Label1(i).Visible = True
   Load Text1(i)
   Text1(i).Top = Label1(i).Top + Label1(i).Height + 20
   Text1(i).Left = 20
   Text1(i).Width = Picture1.Width - 20
   Text1(i).Visible = True
   Text1(i).Text = ""
   '把輸入焦點(diǎn)定位到第一個輸入框中
   Text1(1).SetFocus
   '統(tǒng)計(jì)練習(xí)文本總字?jǐn)?shù)
   totalchar = Len(Label1(i).Caption) + totalchar
   '如果練習(xí)文本的高度大于Picture1的高度,則不再繼續(xù)從文本文件中讀數(shù)據(jù)而退出
   If Picture1.Height - (Text1(i).Top + Text1(i).Height) < 500 Then Exit Do
    End If
  Loop
  '如果文本文件為空,則退出
  If i = 0 Then
   t.Close
   Exit Sub
  End If
  t.Close
  '練習(xí)開始,并且計(jì)時開始
  rowcount = i
  playsec = 0
  Timer1.Enabled = True
  mode = "start"
  StatusBar1.Panels(1).Text = "Status : Starting..."
End Sub
'------------------------------------------
Private Sub Text1_Change(Index As Integer)
 If mode = "pause" Then Call mnuResume_Click
  '如果當(dāng)前行的打字字?jǐn)?shù)等于當(dāng)前練習(xí)行字?jǐn)?shù),則跳到下一打字輸入行
  '如果練習(xí)完畢,則彈出對話框,讓玩家選擇是否存儲打字速度數(shù)據(jù)
  If LenB(Text1(Index).Text) = LenB(Label1(Index).Caption) Then
   If Index = rowcount Then
    Timer1.Enabled = False
    mode = ""
    Dim i, j, rightchar As Integer
    rightchar = 0
    '統(tǒng)計(jì)每一行打字的正確字?jǐn)?shù)
    For i = 1 To rowcount
     For j = 1 To Len(Label1(i).Caption)
      If Mid(Text1(i).Text, j, 1) = Mid(Label1(i).Caption, j, 1) Then rightchar = rightchar + 1
     Next
    Next
  If MsgBox("finish task!Correct Percent:" & Int((rightchar / totalchar) * 100) & "%" + vbCrLf + vbCrLf + "Do you want to save this practice result?", vbYesNo + vbInformation, "Hint") = vbYes Then
'將打字速度結(jié)果存入文本文件中
  Open App.Path + "\count.txt" For Append As #1
  If playsec = 0 Then
   Print #1, 0
  Else
   Print #1, CStr(totalchar / playsec)
  End If
  Close #1
End If
 '計(jì)時清0
  playsec = 0
 Else
 Index = Index + 1
 Text1(Index).SetFocus
 End If
 End If
End Sub
'------------------------------------------
Private Sub Text1_KeyDown(Index As Integer, KeyCode As Integer, Shift As Integer)
 '在打字輸入框中屏蔽掉方向鍵和刪除鍵等,以避免玩家誤操作
 If KeyCode = vbKeyLeft Then KeyCode = 0
 If KeyCode = vbKeyRight Then KeyCode = 0
 If KeyCode = vbKeyUp Then KeyCode = 0
 If KeyCode = vbKeyDown Then KeyCode = 0
 If KeyCode = vbKeyDelete Then KeyCode = 0
 If KeyCode = vbKeyHome Then KeyCode = 0
 If KeyCode = vbKeyEnd Then KeyCode = 0
End Sub
'-------------------------------------------
Private Sub Text1_MouseDown(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single)
 '如果用鼠標(biāo)點(diǎn)擊輸入框,則作為作弊行為,重新開始練習(xí)
 MsgBox "Don't cheat youself,Please studying carefully!" + vbCrLf + vbCrLf + "[Suggestion : This Way is to advantage you]", vbOKOnly + vbInformation, "Warning"
 Call mnuRestart_Click
End Sub
'-------------------------------------------
Private Sub Timer1_Timer()
 '計(jì)算當(dāng)前練習(xí)所耗時間,以秒為單位
 playsec = playsec + 1
 StatusBar1.Panels(2).Text = "Seconds Used : " & playsec & "(S)"
End Sub

  至此,你就擁有了一個屬于自己的打字小軟件了。按F5運(yùn)行它,效果還不錯吧,有興趣的朋友還可以加上一些特殊功能,比如背景音樂,字體顏色或者游戲功能。  

  (備注:本程序在VB6.0+WIN2000下調(diào)試通過)

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統(tǒng)下載排行

網(wǎng)站地圖xml | 網(wǎng)站地圖html
主站蜘蛛池模板: 武胜县| 泾川县| 兰西县| 赣榆县| 青海省| 津南区| 抚顺县| 藁城市| 青川县| 景宁| 阳原县| 屯昌县| 沈丘县| 崇礼县| 长垣县| 裕民县| 湖北省| 齐河县| 临夏县| 紫金县| 北宁市| 凌海市| 南康市| 祁门县| 九寨沟县| 乌审旗| 灌南县| 玉环县| 同江市| 青岛市| 荆门市| 章丘市| 泰兴市| 张家港市| 天镇县| 惠州市| 通山县| 新宾| 桃园县| 临潭县| 宿松县|