前言
时下,智能手机越来越贴近我们的生活,越来越多的教师朋友,学生朋友都会用智能手机,因为她们功能齐全,在手机上运行的软件应有尽有,QQ、在线游戏,音乐影视…….。
对于大学生朋友,广大教师朋友,能够在自己的手机有一个动态的课程表程序,一来可以合理安排空余时间,二来又不会误了学习工作的时间,是一件非常不错的事。本文,以微软公司的移动手机平台 WindowsMobile2003为基础,简单实现手机上的课表程序。
程序在WindowsMobile2003 dopod818手机上测试通过。程序运行时,主界面如图
程序下载地http://nihg.org/blogview.asp?logID=403
开发平台与工具:
MS WindowsXp 组件基于.net framework 1.1
Basic4ppc 5.8 (可到http://www.basic4ppc.cn/下载)
思路与代码:
Basic语言是众多程序初学者的入门语言,开发手机程序,我们同样也能使用她,使用没有基础的朋友也能一看就会。程序的主要思路如下:
一、根据日期得到星期,然后读取相应的日课表。
日课表为了方便与美观,直接做成bmp图片文件,下面是空白的课表和根据自己的课程已填好的课表,为了方便程序调用,直接将文件存为 1.bmp 2.bmp …..表示 周一 周二 的课表,以此类推。
[空白表 1.bmp 2.bmp]
程序的主界面如下 ,可见,我们为了尽量减少动态加载的课表体积,只将界面中心部份的课表作成bmp文件,整个背景直接做在程序里了。
实现读取课表的代码如下:
我们在窗体上用一个 timer组件来实现
Sub Timer4_Tick ' 用来检测当前日期并且读取相应课表值得注意的是 else
' then 语句 换行很重 then 必须另起一行
If label32.Text ="Monday" Then
image3.LoadPicture("class1.bmp")
Else If label32.Text ="Tuesday" Then
image3.LoadPicture("class2.bmp")
Else If label32.Text ="Wednesday" Then
image3.LoadPicture("class3.bmp")
Else If label32.Text ="Thursday" Then
image3.LoadPicture("class4.bmp")
Else If label32.Text ="Friday" Then
image3.LoadPicture("class5.bmp")
Else
End If
End Sub
其中label32显示当前的星期值,从下面timer3组件中得到值。
二、动态实时显示当前课
课表的主要作用是,我们能实时查看当前是上课还是下课,是在上哪节课,于是,我们想到了用一个不同色泽的小矩形来指示。矩形对准哪 节课就是表示哪节课,而且可以自己定义三个时间:我们用一个文本文件 time.txt 来存放课时间,其内容格式定义如下
第一节 08:00 08:05 08:45
第二节 10:05 10:10 10:50
第三节 11:05 11:10 11:50
第四节 12:05 12:10 12:50
第五节 13:00 13:05 12:25
第六节 14:05 14:10 13:25
第七节 13:33 13:35 14:15
第八节 16:05 16:10 16:50
////////////////文件内容说明////////////////
以上为本程序的时间表,您只要修改每节课的三个时间,其中
第一个时间为预备提示时间第二个时间为真正上课时间
第三个时间为下课时间
每个时间一定要用上面的格式,并且每两个时间之间用一个 空格 隔开
我们先用下面代码读出这些内容,放到窗体上,待用。
Sub Form2_Show
form2.minimizebox=true
FileOpen (c1, "time.txt",cRandom) '打开时间表,读取时间
下面是每一节课的三个不同时间,分别放在不同的label上,要与当前时间作比较,以便用不同的色泽显示矩形提示块
label8.Text = FileGet (c1, 7,5)
label9.Text = FileGet (c1, 13,5)
label10.Text = FileGet (c1,19,5)
label11.Text = FileGet (c1, 33,5)label12.Text = FileGet (c1, 39,5)
label13.Text = FileGet (c1,45,5)
label14.Text = FileGet (c1, 59,5)
label15.Text = FileGet (c1, 65,5)
label16.Text = FileGet (c1,71,5)
label17.Text = FileGet (c1, 85,5)
label18.Text = FileGet (c1, 91,5)
label19.Text = FileGet (c1,97,5)
label20.Text = FileGet (c1, 111,5)
label21.Text = FileGet (c1, 117,5)
label22.Text = FileGet (c1,123,5)
label23.Text = FileGet (c1, 137,5)
label24.Text = FileGet (c1, 143,5)
label25.Text = FileGet (c1,149,5)
label26.Text = FileGet (c1, 163,5)
label27.Text = FileGet (c1, 169,5)
label28.Text = FileGet (c1,175,5)
label29.Text = FileGet (c1, 189,5)
label30.Text = FileGet (c1, 195,5)
label31.Text = FileGet (c1,201,5)
FileClose(c1)
End Sub
时间读取完毕后,我们将课表每一行的坐标位置取出来,用下面的代码就能实现实时显示了。
Sub Timer3_Tick
x=Time(Now)
label5.Text =x
label7.Text =TimeS
label32.Text =DateDayOfweek (Now) '得到星期几
If label5.Text =label8.Text Then
image4.Top =32
image4.Color =cgreen
Else If label5.Text =label9.Text Then
image4.Top =32
image4.Color =cred
Else If label5.Text =label10.Text Then
image4.Top =32
image4.Color =cblue
责任编辑:小草