-
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。当然,具体实现时要注意上一步的现场与下一步之间有什么不同,以便在程序中得到有效控制,如窗体中各控件的属性、位置等。
最新更新
求1000阶乘的结果末尾有多少个0
详解MyBatis延迟加载是如何实现的
IDEA 控制台中文乱码4种解决方案
SpringBoot中版本兼容性处理的实现示例
Spring的IOC解决程序耦合的实现
详解Spring多数据源如何切换
Java报错:UnsupportedOperationException in Col
使用Spring Batch实现批处理任务的详细教程
java中怎么将多个音频文件拼接合成一个
SpringBoot整合ES多个精确值查询 terms功能实
数据库审计与智能监控:从日志分析到异
SQL Server 中的数据类型隐式转换问题
SQL Server中T-SQL 数据类型转换详解
sqlserver 数据类型转换小实验
SQL Server数据类型转换方法
SQL Server 2017无法连接到服务器的问题解决
SQLServer地址搜索性能优化
Sql Server查询性能优化之不可小觑的书签查
SQL Server数据库的高性能优化经验总结
SQL SERVER性能优化综述(很好的总结,不要错
uniapp/H5 获取手机桌面壁纸 (静态壁纸)
[前端] DNS解析与优化
为什么在js中需要添加addEventListener()?
JS模块化系统
js通过Object.defineProperty() 定义和控制对象
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比