由于近年来计算机应用在学校的普及,CAI软件十分流行。许多教育工作者在初尝学习VB的甜头后,也跃跃欲试,急于把自己的教学经验变成软件,提高教学效率。

大部分教学软件都有一个“自动/手动”按钮,学习者可以选择系统自动一步一步往下执行,也可由自己手动控制是否进入到下一步。同时,还应该提供向上向下翻页功能,以使学习者能够自由控制学习流程。

下面先谈一谈怎样使系统一步一步自动运行。

首先要将教学过程分解为若干步,每一步由一段程序控制。设一整型变量(如StepCo-unt),在窗体装载时赋初值为0,用来指明将运行哪一段程序。在窗体中另设一定时器(如Timer—step),在预定时间后产生一触发事件,使程序转入下一步。

主程序设计成如下格式:

Private Sub Run—Step(bz As Integer)
Select Case bz
Case 1
Timer—step.Interval=20000 ′这一步停留的时间
Timer—step.Enabled=True
(本步的教学过程控制程序)
   Case 2
   ……
   Case 3
   ……
   End Select
  End sub
  Private Sub Timer—step.Timer() ′计时器事件
  StepCount=StepCount+1
   Run—Step StepCount ′调用主程序
  End Sub
这样,计时器Timer—Step每触发一次,将使变量StepCount的值增1,在调用过程Run—Step时进入下一步学习,而Timer—Step的触发时间可在上一步的程序中设定,具体的Interval值需要根据实际情况确定。
如要实现“自动/手动”切换,只需在窗体中适当位置放上一按钮,并在程序中定义一逻辑变量(如auto,其值为True时自动运行,为False时手动操作),将上面的Timer—Step中事件修改如下:

  Private Sub Timer—step.Timer()
   If auto then ′变量值为真时自动执行,否则计时器失效
   StepCount=StepCount+1
   Run—Step StepCount
   Else
  Timer—Step.Enable=False
   EndIf
  End Sub
  这样,只要在该按钮的Click事件中执行语句:auto=Notauto,鼠标点击时,将对应的逻辑变量值取反,即可在“自动/手动”间切换。

  有了上述功能还不够,因为学习者不一定一步一步进行到底,有可能需要返回到上一步,或是跳过某一步。由于我们在程序设计中使用了SelectCase语句来决定运行哪一步,使控制变得十分灵活。只需设置“上一步”按钮,在其Click事件中使变量StepCount的值减1,并调用Run—Step过程,即可返回至上一步:进入下一步可照样处理,只是应将StepCount的值加1。当然,具体实现时要注意上一步的现场与下一步之间有什么不同,以便在程序中得到有效控制,如窗体中各控件的属性、位置等。