APP下载

Timer控件,“T—I—M—E—R”编程

2016-05-27张利波

中小学信息技术教育 2016年5期
关键词:第一课例子控件

张利波

前情回顾

宁波市编信息技术教材经过2014年修订,删除了已经过时的QB,取而代之以VB作为程序设计教学内容。一方面,VB界面友好,语言简洁,是一款结构化、模块化、面向对象的可视化程序设计语言;另一方面,VB可以衔接高中信息技术“算法与程序设计”模块的教学内容。因此,初三阶段,学生正式进入编程时代。

何为编程?为了使计算机能够理解人的意图,人类就必须将需解决问题的思路、方法和手段通过计算机可以理解的形式告诉计算机,使得计算机能够根据人的指令一步一步去工作,完成某种特定的任务。这种人和计算机之间交流的过程就是编程。

几乎所有学生在跨入“编程”之前,会不约而同地认为:编程,难,很难,相当难!事实呢?我也认为确实难。所幸,我们学习VB不用冲击信息学奥林匹克竞赛。那么,怎样在有限的时间内,让学生及时进入编程状态呢?学习内容很大程度上起着决定性的作用。“既吸引眼球又简洁的例子就好了”,我心里一遍遍默念着。看着教材第一课,我有了新的想法。

使用缘由

说起教材第一课,不禁想起了2014年1月,全体教材编写人员来到美丽的省城——杭州,齐聚浙江教育出版社的会议厅开始了第五册教材修订工作。很荣幸,我也是其中一员,参与VB部分内容的编写。考虑到与高中VB教材的衔接,教材组还邀请了鄞州中学的林强老师。林老师执教高中信息技术教学,多次参与浙江省信息技术学考、高考的命题工作。有林老师为我们VB小组把关,我似乎吃了一颗定心丸。编写教材之前,我也翻阅了一些教材,查阅了一些资料,发现VB第一课内容相仿,大多为VB简介、窗口介绍等基础知识,操作上以打开文件、保存文件为主。至于例子,基本大同小异,如点击按钮显示“欢迎来到VB世界”等。

我当即决定把这个通俗的例子改掉,但是什么例子恰当呢?同样是显示,同样用Label控件,难度不大,效果很好,有这样的例子吗?对,显示!时间的显示是否更有意义?——电子时钟!我几乎跳着想出了这个例子。

再看Timer控件,属性相当少,不妨碍学生首次接触VB。当我把这个想法告诉林老师时,林老师也赞同这一生活化的例子。于是,电子时钟出现在VB第一课中。

基本概念

Timer

Timer是VB工具箱中的一种控件。通俗来说,就是计时器,运行时不可视。通过引发Timer事件,Timer控件可以有规律地每隔一段时间执行一次代码。Timer重要属性有Interval(时间间隔)、Enabled(是否可用)。

T-I-M-E-R

T-I-M-E-R (Twinkly Interesting Magic Easy Round)是指VB教学初期,利用Timer控件实现动态效果,快速营造出一种简单、有趣、神奇、极具吸引力的VB学习课程,从而驱除学生编程的畏惧感,产生对VB的亲近感。

要素解析

T—— Twinkly—— 闪烁的

Twinkly意为闪烁的、闪亮的。这与Timer控件调用Timer事件有异曲同工之妙。Timer事件每隔一定时间执行一次代码,对应效果犹如闪烁。Timer控件最闪亮、最吸引眼球的当属“动态”效果。因此,“闪烁”似乎成了Timer控件最基本的属性,其前提条件Interval设置非零数据,Enabled 设置True。“闪烁”可以表现文字的一明一暗,颜色的五彩变化,也可以表现图片交替、文字移动,数据、时间的更新等。

I—— Interesting—— 有趣的

Interesting意为有趣的,令人关注的。VB学习初期一般选用简洁的例子,基本会用到典型的Label控件,属性以Caption为主,再辅以类似文字属性设置,如更改字体、字号、字色等。这些操作基本类同于Word文字设计,学生上手容易,但效果差强人意。事实上,这些内容难以体现VB编程的强大,学生难以体味出VB编程的味道。诚然,在VB初学阶段,学生还没编程基础,没碰过IF、FOR, 看不懂选择、循环,但缺少这些结构,程序效果就会大打折扣。

这时不妨采用Timer控件,一样的编程基础,不一样的编程效果。比如让电子时钟可以像日常电子钟那样有跳动的过程;比如随机抽奖程序,不仅可供教师应用于课堂随机点名,还能关联生活中的抽奖环节;比如图片交替,既可模拟屏保效果,又可作为记忆类的益智游戏。这些有意思、有意义的实例,让学生触碰VB第一刻起,就牢牢记住VB的魅力,感受VB的强大,让学生对VB产生“相见恨晚”的感觉。

M—— Magic—— 神奇的

Magic意为神奇的、不可思议的,有奇异魔力的。Timer控件的确有神奇魔力,寥寥数个属性设置,短短一句代码,居然一个电子时钟就跃然于屏幕之上(如图1)。如此简单,如此神奇!不可否认,此时学生仅仅惊叹于表面现象,但“首因效应”却在VB第一课上被发挥得淋漓尽致。当然作为教师,我们明白表面现象不能维系太久的学习,只有及时探究Timer控件内在的秘密,才能让学生真正领略VB的神奇魅力。

比如电子时钟属性设置为1000毫秒,运行效果按秒变化;如果按2秒跳动一次,Interval设置为多少毫秒?学生很自然地设置2000毫秒,结果的确这样。接下来,我让学生尝试100毫秒,猜测电子时钟会怎么跳动。学生纷纷猜想。验证之后,运行效果居然没有一点变化!

“为什么会一样?”我趁机抛出这个疑问,“Timer没有‘写吗?偷懒了?”“没有偷懒,‘写的。”“1秒中间‘写了几次?”“10次。”“写了这么多,居然没变化,为什么?”“每次写了一模一样的内容。”“为什么会一样呢?”“Time函数返回系统时钟的当前时间,最小变化单位是秒,即1000毫秒。所以,即使设置小于1000毫秒的数据,每次内容还没有变化,因此一样了。”“总结非常到位。这样的设置,1秒内只有1次有效,其他都是无用功,这会影响计算机运行效率。因此,我们设置属性时也要考虑有效性。”经过这样梳理,学生对Interval属性已经深入理解,在学习“抽奖”程序时,为达到抽奖公平性,让数据飞速转动起来,学生纷纷改小Interval属性值,这时学生不会再简单地设置1毫秒或2毫秒。

E—— Easy—— 容易的

Easy意为容易的。神奇是吸引学生学的外衣,容易才是学生愿学、乐学的基础。通过操作,让学生感知VB编程的一般过程,收获编程成就感,体验编程的乐趣和意义,这是VB教学初期我设定的课程目标。选择简单又实用的程序例子是达成目标的好途径。VB编程一般分为设计分析——外观设计——属性设置——代码编写——运行调试等环节。其中外观设计、属性设置,一般沿袭了信息技术学科“所见即所得”的操作习惯,即便全英文的属性设置,先“按分类序”分组,再结合中文说明,依然“无障碍”操作。

毫无疑问,代码编写是难度最大的环节。代码越简单,学生编程越容易成功。Timer控件搭建了循环的框架,只要在Private Sub Timer1_Timer()写上循环体,在效果不变的前提下降低了难度,学生更容易上手实践。编写电子时钟代码时(外观设计见图2),我们不妨先用日常方法描述:你需要实现的效果是什么?——在Label1上显示时间;对象是哪个?——Label1;显示用什么属性?——Caption;显示内容是什么?——时间;时间怎么获得?——Time函数(Time$)。接着,我们用赋值语句的一般结构:对象.属性=值。对应填入各项内容,代码即为:Label1.Caption=Time$。

R—— Round—— 循环

Round意为循环、圆。外观上,Timer 控件看上去圆圆的;本质上,Timer事件,每隔一段时间重复做一件事情,其工作原理就是循环。同时,这个循环并不是“死循环”,Timer控件用Enabled属性装上开关。根据需要,开关可以定制Timer 控件不继续使用,即退出循环。如果关闭后又需要启动Timer,一般我们用语句Timer1.Enabled=Not(Timer1.Enabled) 来实现交替进行。

(作者单位:浙江慈溪实验中学)

猜你喜欢

第一课例子控件
观《开学第一课》有感
早上第一课
《团圆之后》:“戏改”的“一个鲜明的例子”
家教第一课:有话好好说
关于.net控件数组的探讨
初中英语课堂妙用“举例子”
科学第一课
用通俗的例子打比方
缩宫素联合米索前列醇防治90例子宫收缩乏力性产后出血临床观察
ASP.NET服务器端验证控件的使用