-
vb教程之用VB开发CAI软件的小经验
余鑫铭
由于近年来计算机应用在学校的普及,CAI软件十分流行。许多教育工作者在初尝学习VB的甜头后,也跃跃欲试,急于把自己的教学经验变成软件,提高教学效率。
大部分教学软件都有一个“自动/手动”按钮,学习者可以选择系统自动一步一步往下执行,也可由自己手动控制是否进入到下一步。同时,还应该提供向上向下翻页功能,以使学习者能够自由控制学习流程。
下面先谈一谈怎样使系统一步一步自动运行。
首先要将教学过程分解为若干步,每一步由一段程序控制。设一整型变量(如StepCount),在窗体装载时赋初值为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=Not auto,鼠标点击时,将对应的逻辑变量值取反,即可在“自动/手动”间切换。
有了上述功能还不够,因为学习者不一定一步一步进行到底,有可能需要返回到上一步,或是跳过某一步。由于我们在程序设计中使用了Select Case语句来决定运行哪一步,使控制变得十分灵活。只需设置“上一步”按钮,在其Click事件中使变量StepCount的值减1,并调用Run—Step过程,即可返回至上一步:进入下一步可照样处理,只是应将StepCount的值加1。当然,具体实现时要注意上一步的现场与下一步之间有什么不同,以便在程序中得到有效控制,如窗体中各控件的属性、位置等。
由于近年来计算机应用在学校的普及,CAI软件十分流行。许多教育工作者在初尝学习VB的甜头后,也跃跃欲试,急于把自己的教学经验变成软件,提高教学效率。
大部分教学软件都有一个“自动/手动”按钮,学习者可以选择系统自动一步一步往下执行,也可由自己手动控制是否进入到下一步。同时,还应该提供向上向下翻页功能,以使学习者能够自由控制学习流程。
下面先谈一谈怎样使系统一步一步自动运行。
首先要将教学过程分解为若干步,每一步由一段程序控制。设一整型变量(如StepCount),在窗体装载时赋初值为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=Not auto,鼠标点击时,将对应的逻辑变量值取反,即可在“自动/手动”间切换。
有了上述功能还不够,因为学习者不一定一步一步进行到底,有可能需要返回到上一步,或是跳过某一步。由于我们在程序设计中使用了Select Case语句来决定运行哪一步,使控制变得十分灵活。只需设置“上一步”按钮,在其Click事件中使变量StepCount的值减1,并调用Run—Step过程,即可返回至上一步:进入下一步可照样处理,只是应将StepCount的值加1。当然,具体实现时要注意上一步的现场与下一步之间有什么不同,以便在程序中得到有效控制,如窗体中各控件的属性、位置等。
最新更新
python爬虫及其可视化
使用python爬取豆瓣电影短评评论内容
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
uniapp/H5 获取手机桌面壁纸 (静态壁纸)
[前端] DNS解析与优化
为什么在js中需要添加addEventListener()?
JS模块化系统
js通过Object.defineProperty() 定义和控制对象
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比