前言
時(shí)下,智能手機(jī)越來(lái)越貼近我們的生活,越來(lái)越多的教師朋友,學(xué)生朋友都會(huì)用智能手機(jī),因?yàn)樗齻児δ荦R全,在手機(jī)上運(yùn)行的軟件應(yīng)有盡有,QQ、在線游戲,音樂(lè)影視…….。
對(duì)于大學(xué)生朋友,廣大教師朋友,能夠在自己的手機(jī)有一個(gè)動(dòng)態(tài)的課程表程序,一來(lái)可以合理安排空余時(shí)間,二來(lái)又不會(huì)誤了學(xué)習(xí)工作的時(shí)間,是一件非常不錯(cuò)的事。本文,以微軟公司的移動(dòng)手機(jī)平臺(tái) WindowsMobile2003為基礎(chǔ),簡(jiǎn)單實(shí)現(xiàn)手機(jī)上的課表程序。
程序在WindowsMobile2003 dopod818手機(jī)上測(cè)試通過(guò)。程序運(yùn)行時(shí),主界面如圖

程序下載地http://nihg.org/blogview.asp?logID=403
開(kāi)發(fā)平臺(tái)與工具:
MS WindowsXp 組件基于.net framework 1.1
Basic4ppc 5.8 (可到http://www.basic4ppc.cn/下載)
思路與代碼:
Basic語(yǔ)言是眾多程序初學(xué)者的入門(mén)語(yǔ)言,開(kāi)發(fā)手機(jī)程序,我們同樣也能使用她,使用沒(méi)有基礎(chǔ)的朋友也能一看就會(huì)。程序的主要思路如下:
一、根據(jù)日期得到星期,然后讀取相應(yīng)的日課表。
日課表為了方便與美觀,直接做成bmp圖片文件,下面是空白的課表和根據(jù)自己的課程已填好的課表,為了方便程序調(diào)用,直接將文件存為 1.bmp 2.bmp …..表示 周一 周二 的課表,以此類(lèi)推?! ?BR>
[空白表 1.bmp 2.bmp]
程序的主界面如下 ,可見(jiàn),我們?yōu)榱吮M量減少動(dòng)態(tài)加載的課表體積,只將界面中心部份的課表作成bmp文件,整個(gè)背景直接做在程序里了?! ?BR>
實(shí)現(xiàn)讀取課表的代碼如下:
我們?cè)诖绑w上用一個(gè) timer組件來(lái)實(shí)現(xiàn)
Sub Timer4_Tick ' 用來(lái)檢測(cè)當(dāng)前日期并且讀取相應(yīng)課表值得注意的是 else
' then 語(yǔ)句 換行很重 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
其中l(wèi)abel32顯示當(dāng)前的星期值,從下面timer3組件中得到值
二、動(dòng)態(tài)實(shí)時(shí)顯示當(dāng)前課
課表的主要作用是,我們能實(shí)時(shí)查看當(dāng)前是上課還是下課,是在上哪節(jié)課,于是,我們想到了用一個(gè)不同色澤的小矩形來(lái)指示。矩形對(duì)準(zhǔn)哪 節(jié)課就是表示哪節(jié)課,而且可以自己定義三個(gè)時(shí)間:我們用一個(gè)文本文件 time.txt 來(lái)存放課時(shí)間,其內(nèi)容格式定義如下
第一節(jié) 08:00 08:05 08:45
第二節(jié) 10:05 10:10 10:50
第三節(jié) 11:05 11:10 11:50
第四節(jié) 12:05 12:10 12:50
第五節(jié) 13:00 13:05 12:25
第六節(jié) 14:05 14:10 13:25
第七節(jié) 13:33 13:35 14:15
第八節(jié) 16:05 16:10 16:50
////////////////文件內(nèi)容說(shuō)明////////////////
以上為本程序的時(shí)間表,您只要修改每節(jié)課的三個(gè)時(shí)間,其中
第一個(gè)時(shí)間為預(yù)備提示時(shí)間第二個(gè)時(shí)間為真正上課時(shí)間
第三個(gè)時(shí)間為下課時(shí)間
每個(gè)時(shí)間一定要用上面的格式,并且每?jī)蓚€(gè)時(shí)間之間用一個(gè) 空格 隔開(kāi)
我們先用下面代碼讀出這些內(nèi)容,放到窗體上,待用。
Sub Form2_Show
form2.minimizebox=true
FileOpen (c1, "time.txt",cRandom) '打開(kāi)時(shí)間表,讀取時(shí)間
下面是每一節(jié)課的三個(gè)不同時(shí)間,分別放在不同的label上,要與當(dāng)前時(shí)間作比較,以便用不同的色澤顯示矩形提示塊
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
時(shí)間讀取完畢后,我們將課表每一行的坐標(biāo)位置取出來(lái),用下面的代碼就能實(shí)現(xiàn)實(shí)時(shí)顯示了。
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
'label8 9 10 分別為第一節(jié)課的準(zhǔn)備,上課,下課時(shí)間,32 為第一節(jié)課對(duì)應(yīng)的行坐標(biāo),意思就是在第一節(jié)課這一行,用三種色彩來(lái)指示,下面是每節(jié)課的不同色彩顯示
'''''''第2節(jié)課''''''''''''''
Else If label5.Text =label11.Text Then
image4.Top =52
image4.Color =cgreen
Else If label5.Text =label12.Text Then
image4.Top =52
image4.Color =cred
Else If label5.Text =label13.Text Then
image4.Top =52
image4.Color =cblue
''''''''''第3節(jié)課'''''
Else If label5.Text =label14.Text Then
image4.Top =72
image4.Color =cgreen
Else If label5.Text =label15.Text Then
image4.Top =72
image4.Color =cred
Else If label5.Text =label16.Text Then
image4.Top =72
image4.Color =cblue ''''''''''''第4節(jié)課
Else If label5.Text =label17.Text Then
image4.Top =94
image4.Color =cgreen
Else If label5.Text =label18.Text Then
image4.Top =94
image4.Color =cred
Else If label5.Text =label19.Text Then
image4.Top =94
image4.Color =cblue
'''''''''''''第5節(jié)課
Else If label5.Text =label20.Text Then
image4.Top =118
image4.Color =cgreen
Else If label5.Text =label21.Text Then
image4.Top =118
image4.Color =cred
Else If label5.Text =label22.Text Then
image4.Top =118
image4.Color =cblue
''''''''''第6節(jié)課
Else If label5.Text =label23.Text Then
image4.Top =140
image4.Color =cgreen
Else If label5.Text =label24.Text Then
image4.Top =140
image4.Color =cred
Else If label5.Text =label25.Text Then
image4.Top =140
image4.Color =cblue
''''''''''第七節(jié)課
Else If label5.Text =label26.Text Then
image4.Top =162
image4.Color =cgreen
Else If label5.Text =label27.Text Then
image4.Top =162
image4.Color =cred
Else If label5.Text =label28.Text Then
image4.Top =162
image4.Color =cblue
'''''''''第八節(jié)課
Else If label5.Text =label29.Text Then
image4.Top =183
image4.Color =cgreen
Else If label5.Text =label30.Text Then
image4.Top =183
image4.Color =cred
Else If label5.Text =label31.Text Then
image4.Top =183
image4.Color =cblue
Else
image4.top =2000 ' 不符合條件,讓指針不可見(jiàn)
End If
End Sub
三、一個(gè)小小的關(guān)鍵所在
用basic4ppc 寫(xiě)的程序,默認(rèn)情況下,程序的退出按鍵是 一個(gè)圓圈 里面是 OK 如圖
點(diǎn)擊OK 后,程序就直接退出了,即不能小化,在后臺(tái)一直運(yùn)行, 這樣,下次啟動(dòng)時(shí),由于我們的程序是實(shí)時(shí)判斷某個(gè)時(shí)間點(diǎn),即 第一節(jié) 08:00 08:05 08:45 程序只僅當(dāng)處于這三個(gè)值時(shí),才有顯示動(dòng)作,如果是 08:06 就會(huì)造成不能正確顯示,所以,我想到了,如何讓程序關(guān)閉后,一直在后臺(tái)小化運(yùn)行,解決的方法是: 在程序先初化時(shí),加入下面代碼
Sub App_Start
Form2.show
flb.New1("Form2",B4PObject(1))
flb.MinimizeBox = True
End Sub
這樣程序右上角原來(lái)的關(guān)閉按鈕 OK 變成現(xiàn)在的 X 了,
點(diǎn) X 后 程序還在后臺(tái)運(yùn)行,用任務(wù)管理器激活后,發(fā)現(xiàn)提示塊顯示正常
當(dāng)然,也可考慮到老師朋友們可能會(huì)有臨時(shí)課務(wù),比哪某位老師下午后一節(jié)課不在,要你去代上,你可以做一個(gè)臨時(shí)課務(wù),直接在此輸入要代的課即可。
呵,用起來(lái)也還真不錯(cuò)。
結(jié)束語(yǔ)
這是我在ppc手機(jī)上寫(xiě)的第一個(gè)小工具,因?yàn)樽约合矚g寫(xiě)程序,有些都是生活中碰到的問(wèn)題,然后在睡前或睡醒前加點(diǎn)思索,于是就有了她。但愿這小小拙作,能給您拋磚引玉,使您有些動(dòng)力去寫(xiě)自己喜歡的作品。有興趣的朋友可以加
以完善,比如上課時(shí)自動(dòng)設(shè)為靜音或振動(dòng),下課后再自動(dòng)恢復(fù)等.
時(shí)下,智能手機(jī)越來(lái)越貼近我們的生活,越來(lái)越多的教師朋友,學(xué)生朋友都會(huì)用智能手機(jī),因?yàn)樗齻児δ荦R全,在手機(jī)上運(yùn)行的軟件應(yīng)有盡有,QQ、在線游戲,音樂(lè)影視…….。
對(duì)于大學(xué)生朋友,廣大教師朋友,能夠在自己的手機(jī)有一個(gè)動(dòng)態(tài)的課程表程序,一來(lái)可以合理安排空余時(shí)間,二來(lái)又不會(huì)誤了學(xué)習(xí)工作的時(shí)間,是一件非常不錯(cuò)的事。本文,以微軟公司的移動(dòng)手機(jī)平臺(tái) WindowsMobile2003為基礎(chǔ),簡(jiǎn)單實(shí)現(xiàn)手機(jī)上的課表程序。
程序在WindowsMobile2003 dopod818手機(jī)上測(cè)試通過(guò)。程序運(yùn)行時(shí),主界面如圖

程序下載地http://nihg.org/blogview.asp?logID=403
開(kāi)發(fā)平臺(tái)與工具:
MS WindowsXp 組件基于.net framework 1.1
Basic4ppc 5.8 (可到http://www.basic4ppc.cn/下載)
思路與代碼:
Basic語(yǔ)言是眾多程序初學(xué)者的入門(mén)語(yǔ)言,開(kāi)發(fā)手機(jī)程序,我們同樣也能使用她,使用沒(méi)有基礎(chǔ)的朋友也能一看就會(huì)。程序的主要思路如下:
一、根據(jù)日期得到星期,然后讀取相應(yīng)的日課表。
日課表為了方便與美觀,直接做成bmp圖片文件,下面是空白的課表和根據(jù)自己的課程已填好的課表,為了方便程序調(diào)用,直接將文件存為 1.bmp 2.bmp …..表示 周一 周二 的課表,以此類(lèi)推?! ?BR>

[空白表 1.bmp 2.bmp]
程序的主界面如下 ,可見(jiàn),我們?yōu)榱吮M量減少動(dòng)態(tài)加載的課表體積,只將界面中心部份的課表作成bmp文件,整個(gè)背景直接做在程序里了?! ?BR>

實(shí)現(xiàn)讀取課表的代碼如下:
我們?cè)诖绑w上用一個(gè) timer組件來(lái)實(shí)現(xiàn)
Sub Timer4_Tick ' 用來(lái)檢測(cè)當(dāng)前日期并且讀取相應(yīng)課表值得注意的是 else
' then 語(yǔ)句 換行很重 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
其中l(wèi)abel32顯示當(dāng)前的星期值,從下面timer3組件中得到值
二、動(dòng)態(tài)實(shí)時(shí)顯示當(dāng)前課
課表的主要作用是,我們能實(shí)時(shí)查看當(dāng)前是上課還是下課,是在上哪節(jié)課,于是,我們想到了用一個(gè)不同色澤的小矩形來(lái)指示。矩形對(duì)準(zhǔn)哪 節(jié)課就是表示哪節(jié)課,而且可以自己定義三個(gè)時(shí)間:我們用一個(gè)文本文件 time.txt 來(lái)存放課時(shí)間,其內(nèi)容格式定義如下
第一節(jié) 08:00 08:05 08:45
第二節(jié) 10:05 10:10 10:50
第三節(jié) 11:05 11:10 11:50
第四節(jié) 12:05 12:10 12:50
第五節(jié) 13:00 13:05 12:25
第六節(jié) 14:05 14:10 13:25
第七節(jié) 13:33 13:35 14:15
第八節(jié) 16:05 16:10 16:50
////////////////文件內(nèi)容說(shuō)明////////////////
以上為本程序的時(shí)間表,您只要修改每節(jié)課的三個(gè)時(shí)間,其中
第一個(gè)時(shí)間為預(yù)備提示時(shí)間第二個(gè)時(shí)間為真正上課時(shí)間
第三個(gè)時(shí)間為下課時(shí)間
每個(gè)時(shí)間一定要用上面的格式,并且每?jī)蓚€(gè)時(shí)間之間用一個(gè) 空格 隔開(kāi)
我們先用下面代碼讀出這些內(nèi)容,放到窗體上,待用。
Sub Form2_Show
form2.minimizebox=true
FileOpen (c1, "time.txt",cRandom) '打開(kāi)時(shí)間表,讀取時(shí)間
下面是每一節(jié)課的三個(gè)不同時(shí)間,分別放在不同的label上,要與當(dāng)前時(shí)間作比較,以便用不同的色澤顯示矩形提示塊
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
時(shí)間讀取完畢后,我們將課表每一行的坐標(biāo)位置取出來(lái),用下面的代碼就能實(shí)現(xiàn)實(shí)時(shí)顯示了。
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
'label8 9 10 分別為第一節(jié)課的準(zhǔn)備,上課,下課時(shí)間,32 為第一節(jié)課對(duì)應(yīng)的行坐標(biāo),意思就是在第一節(jié)課這一行,用三種色彩來(lái)指示,下面是每節(jié)課的不同色彩顯示
'''''''第2節(jié)課''''''''''''''
Else If label5.Text =label11.Text Then
image4.Top =52
image4.Color =cgreen
Else If label5.Text =label12.Text Then
image4.Top =52
image4.Color =cred
Else If label5.Text =label13.Text Then
image4.Top =52
image4.Color =cblue
''''''''''第3節(jié)課'''''
Else If label5.Text =label14.Text Then
image4.Top =72
image4.Color =cgreen
Else If label5.Text =label15.Text Then
image4.Top =72
image4.Color =cred
Else If label5.Text =label16.Text Then
image4.Top =72
image4.Color =cblue ''''''''''''第4節(jié)課
Else If label5.Text =label17.Text Then
image4.Top =94
image4.Color =cgreen
Else If label5.Text =label18.Text Then
image4.Top =94
image4.Color =cred
Else If label5.Text =label19.Text Then
image4.Top =94
image4.Color =cblue
'''''''''''''第5節(jié)課
Else If label5.Text =label20.Text Then
image4.Top =118
image4.Color =cgreen
Else If label5.Text =label21.Text Then
image4.Top =118
image4.Color =cred
Else If label5.Text =label22.Text Then
image4.Top =118
image4.Color =cblue
''''''''''第6節(jié)課
Else If label5.Text =label23.Text Then
image4.Top =140
image4.Color =cgreen
Else If label5.Text =label24.Text Then
image4.Top =140
image4.Color =cred
Else If label5.Text =label25.Text Then
image4.Top =140
image4.Color =cblue
''''''''''第七節(jié)課
Else If label5.Text =label26.Text Then
image4.Top =162
image4.Color =cgreen
Else If label5.Text =label27.Text Then
image4.Top =162
image4.Color =cred
Else If label5.Text =label28.Text Then
image4.Top =162
image4.Color =cblue
'''''''''第八節(jié)課
Else If label5.Text =label29.Text Then
image4.Top =183
image4.Color =cgreen
Else If label5.Text =label30.Text Then
image4.Top =183
image4.Color =cred
Else If label5.Text =label31.Text Then
image4.Top =183
image4.Color =cblue
Else
image4.top =2000 ' 不符合條件,讓指針不可見(jiàn)
End If
End Sub
三、一個(gè)小小的關(guān)鍵所在
用basic4ppc 寫(xiě)的程序,默認(rèn)情況下,程序的退出按鍵是 一個(gè)圓圈 里面是 OK 如圖
點(diǎn)擊OK 后,程序就直接退出了,即不能小化,在后臺(tái)一直運(yùn)行, 這樣,下次啟動(dòng)時(shí),由于我們的程序是實(shí)時(shí)判斷某個(gè)時(shí)間點(diǎn),即 第一節(jié) 08:00 08:05 08:45 程序只僅當(dāng)處于這三個(gè)值時(shí),才有顯示動(dòng)作,如果是 08:06 就會(huì)造成不能正確顯示,所以,我想到了,如何讓程序關(guān)閉后,一直在后臺(tái)小化運(yùn)行,解決的方法是: 在程序先初化時(shí),加入下面代碼
Sub App_Start
Form2.show
flb.New1("Form2",B4PObject(1))
flb.MinimizeBox = True
End Sub
這樣程序右上角原來(lái)的關(guān)閉按鈕 OK 變成現(xiàn)在的 X 了,
點(diǎn) X 后 程序還在后臺(tái)運(yùn)行,用任務(wù)管理器激活后,發(fā)現(xiàn)提示塊顯示正常
當(dāng)然,也可考慮到老師朋友們可能會(huì)有臨時(shí)課務(wù),比哪某位老師下午后一節(jié)課不在,要你去代上,你可以做一個(gè)臨時(shí)課務(wù),直接在此輸入要代的課即可。
呵,用起來(lái)也還真不錯(cuò)。
結(jié)束語(yǔ)
這是我在ppc手機(jī)上寫(xiě)的第一個(gè)小工具,因?yàn)樽约合矚g寫(xiě)程序,有些都是生活中碰到的問(wèn)題,然后在睡前或睡醒前加點(diǎn)思索,于是就有了她。但愿這小小拙作,能給您拋磚引玉,使您有些動(dòng)力去寫(xiě)自己喜歡的作品。有興趣的朋友可以加
以完善,比如上課時(shí)自動(dòng)設(shè)為靜音或振動(dòng),下課后再自動(dòng)恢復(fù)等.