用VB编写趣味打字程序 云飞 2001年 1期 也许你和我一样,面对键盘只会“一指禅”,看到别人的弹指神功炉火纯青,是不是很羡慕?那我们编个程序练练打字吧!    功能设计:屏幕上随机出现英文字符,在其降落过程中按键盘相应键位将其击落。在一定时间内,击中的字符越多得分越多,最后根据得分给出相应的评语。为增加趣味性,字符及其在屏幕上方出现的位置和下落速度都是随机产生的。    界面设计:新建工程,将Form1的Caption属性为“趣味打字”,Label1用于显示下落的随机字符,其Caption属性为“”(空),label2的Caption属性设为“得分”,Label3的Caption属性设为“时间”,Label4用于显示得分,其Caption属性设为“0”,Label5用于显示剩余时间,其Caption属性设为“200”。Command1的Caption属性设为“开始”,Timer1控制字符下落,其Interval属性设为“100”,即每1/10秒触发一次。Timer2控制倒计时,Interval属性设为“1000”,即每1秒触发一次。    程序代码:    Option Explicit    Dim score As Integer '定义得分    Dim c As String    Dim speed As Integer '定义速度    Sub init() '每个字符的初始化    Label1.Caption = Chr(Int(Rnd * 26) + 97) '随机字符    speed = Int(Rnd * 100 + 100)    Label1.Left = Int(Rnd * Form1.Width) '字符出现的位置    Label1.Top = 0    End Sub    Private Sub Command1_Click()    init    Timer1.Enabled = True '启动定时器    Timer2.Enabled = True    Command1.Visible = False '使命令按钮不可见    Label5.Caption = 200    Label4.Caption = 0    End Sub    Private Sub Form_KeyPress(KeyAscii As Integer)    If Chr(KeyAscii) = Label1.Caption Then '判断所按键位是否与产生的字符相符    init    score = score + 1    Label4.Caption = score    End If    End Sub    Private Sub Form_Load()    Randomize '初始化随机种子数    c = “时间到!”    End Sub    Private Sub Timer1_Timer()    Label1.Top = Label1.Top + speed    If Label1.Top > Form1.Height Then    init    End If    End Sub    Private Sub Timer2_Timer()    Label5.Caption = Val(Label5.Caption) - 1    If Val(Label5.Caption) <= 0 Then '判断时间是否用完    Timer1.Enabled = False    Label1.Caption = “”    Select Case score    Case Is <= 100    MsgBox c + vbCrLf + “别灰心,再加把劲!”    Case Is < 250    MsgBox c + vbCrLf + “不错,请继续努力。”    Case Is >= 250    MsgBox c + vbCrLf + “你真棒!恭喜你已成为高手。”    End Select    Timer2.Enabled = False    Command1.Visible = True '恢复命令按钮的可见状态    End If    End Sub    知识点:这里的要点是Timer控件和KeyPress事件,请注意文中的黑体部分。    Timer控件(也可以叫做计时器)是VB 6中属性值最少的控件之一,最主要的属性就是Interval和Enabled。Interval属性表示触发控件的时间间隔,以1/1000秒为单位,如设置为1000,则表示每隔1秒钟触发一次“Timer”事件,我们便可以在这个“Timer”事件中编写具有周期性的过程代码;而Enabled属性相当于一个开关,其值为“Ture/False”,设置为“True”时,便激活计时器开始计时,设置为“False”时则停止计时。    KeyPress事件是用户使用键盘进行输入时发生的。在这个事件中,我们可以通过KeyAscii这个参数捕获用户当前键入的按键,我们可以添加有关数据或密码验证等方面的代码,如本文中的“If Chr(KeyAscii)=Label1.Caption Then”语句,就是在检验用户输入的字符是否于随机出现的字符一致(有关键盘编程的实例,大家还可以参考《电脑报》2000年49期17版《键盘编程实例》一文)。