下面我們就開始編寫吧。
第一件事當然是新建一個工程,然後引入所需控件。在“紅綠燈”程序中,我們需要用到的控件有:OptionButton(選項按鈕)、Image(圖像框)及Timer(時鐘)控件。引入兩個OptionButton,其中Option1的Caption設置為“紅燈”,Option2的Caption設置為“綠燈”;Image1的Picture屬性設置為紅燈圖片,選擇一張紅燈圖片(讀者可以自己創建一個紅燈及綠燈圖片)。設計好的程序界面如圖1。
好了,現在我們開始添加程序代碼。
我們要求程序能夠通過我們所選擇的是紅燈或綠燈來顯示相應的圖像,實現的原理就是當我們單擊“紅燈”時顯示紅燈圖片,單擊“綠燈”時顯示綠燈圖片,只要用戶准備好這兩張圖片後,要實現這個功能就非常的容易了。其具體的程序代碼如下:
雙擊Option1(即紅燈)控件,添加如下代碼:(黑體部分為系統自動生成的代碼,下同)
PrivateSubOption1_Click()
′顯示紅燈圖片
OnErrorGoToLoadErr ′當載入圖片發生錯誤時跳到LoadErr處
IfOption1.Value=TrueThen ′當單擊了Option1控件時
Image1.Picture=LoadPicture(″C:WindowsDesktop
ed.jpg″) ′載入red.jpg圖片,並顯示在Image1控件中。
EndIf
LoadErr: ′設置捕獲錯誤標簽
IfErr.Number=53Then ′當發生錯誤時
MsgBoxErr.Description,vbOKOnly+vbCritical,″錯誤″ ′顯示錯誤信息
EndIf
EndSub
上面一段代碼中有一句“OnErrorGotoLoadErr”,該句是用作捕獲程序錯誤的,當程序執行過程中發生了錯誤則跳到處理錯誤語句處執行。在這段代碼中,如果在載入圖片時發生了錯誤(通常是所要載入的文件不存在或路徑錯誤)則跳到LoadErr處執行LoadErr後的程序代碼。
在VB中,所有的程序錯誤都是用數字表示的,如53則表示未找到文件的錯誤碼,其實要知道哪個錯誤碼表示哪種錯誤也並不難,當你在VB中運行這個程序時,如果出現了錯誤,會有一個錯誤的提示框,在該提示框中則有該錯誤的錯誤碼。如果我們沒有在該段程序中加入“OnErrorGotoLoadErr”語句及給出錯誤的文件名或文件路徑的話,則會出現如圖2所示的提示框。
LoadPicture是載入圖片的函數,其中第一個參數則是所要載入圖片的完整路徑,當然在本例中這個路徑是固定了的,所要想使其路徑隨程序路徑的變化而變化則需要使用App.Path值,可以寫成Image1.Picture=LoadPicture(App.Path&″ ed.jpg″),其中App.Path返回的值則是程序所在的路徑,當然red.jpg必須放在程序所在的同一目錄中。
雙擊Option2(即綠燈)控件,添加如下代碼:
PrivateSubOption2_Click()
′顯示綠燈圖片
OnErrorGoToLoadErr ′當載入圖片發生錯誤時跳到LoadErr處
IfOption2.Value=TrueThen ′當單擊了Option2控件時
Image1.Picture=LoadPicture(″C:WindowsDesktopgreen.jpg″) ′載入green.jpg圖片,並顯示在Image1控件中。
EndIf
LoadErr: ′設置標簽
IfErr.Number=53Then ′當發生錯誤時
MsgBoxErr.Description,vbOKOnly+vbCritical,″錯誤″ ′顯示錯誤信息
EndIf
EndSub
OK!現在我們就可以單擊F5鍵運行一下,看看我們自制的“紅綠燈”程序吧。點擊一下“綠燈”看看,紅燈變成綠燈了吧?再試試紅燈,怎樣?現在我們就可以控制紅綠燈了吧。
如何才能讓“紅綠燈”自動更換呢?要實現這個功能也非常簡單,只要加入Timer(時鐘)控件,將Timer1的Interval設置為3000(即3秒)。其原理就是每隔3秒更換一種圖片,這樣便實現了自動更換。
雙擊Timer1控件,添加如下代碼:
PrivateSubTimer1_Timer()
′實現自動化
IfOption1.Value=TrueThen ′如果當前顯示的是紅燈
Option2.Value=True ′使Option2被選中,執行Option2中的代碼(即顯示綠燈)
Else
Option1.Value=True ′使Option1被選中,執行Option1中的代碼(即顯示紅燈)
EndIf
EndSub
單擊F5鍵運行一下,每隔3秒鐘即換一種顏色顯示。就這麼幾句代碼就實現了自動化,簡單吧?
->