

摘要:VB程序設(shè)計語言以其友好的界面,結(jié)構(gòu)他的語言成為許多初學(xué)者的首選,本文通過一個夜幕降臨繁星初上的小程序介紹VB程序的設(shè)計及學(xué)習(xí)。
關(guān)鍵字:VB 程序設(shè)計
Visual Basic程序設(shè)計語言以友好的開發(fā)界面,結(jié)構(gòu)化的設(shè)計語言成為程序設(shè)計初學(xué)者的首選。本文用一個夜幕降臨繁星初上的編程案例介紹VB程序的設(shè)計及學(xué)習(xí)。(程序在VB6.0環(huán)境運行通過)
一、問題提出
用VB程序設(shè)計語言設(shè)計一個夜幕降臨,繁星初上動態(tài)效果的小程序。
二、問題分析
問題涉及兩個部分:夜幕降臨和繁星初上。夜幕降臨,要求設(shè)計窗口一開始是藍(lán)色的效果(模擬藍(lán)天),隨著時間慢慢變暗,直到完全黑下來,需要用到讓窗口顏色隨時間變化的對象;繁星初上可以考慮用隨機函數(shù)實現(xiàn)星星大小和位置的任意性。三、程序?qū)崿F(xiàn)
1.窗口界面設(shè)計。新建一個工程,將窗口的Windowstate屬性值設(shè)為2 - Maximized。在窗口上設(shè)計三個垂直滾動條控件,用于紅綠藍(lán)三原色值的設(shè)定。將三個滾動條名字分別設(shè)為Hl(紅色),H2(綠色)和H3(藍(lán)色)。將Hl,H2和H3的Visible屬性值設(shè)為False; Max屬性值設(shè)為255;Min屬性值設(shè)為0。在窗口上設(shè)計一個時鐘控件Timerl,用于控制窗口顏色由藍(lán)變黑,模擬天黑的過程。Timerl的Interval屬性值設(shè)為500。再在窗口上添加一個時鐘控件Timer2用于實現(xiàn)繁星初上的效果。如下圖所示:
2.代碼設(shè)計。代碼設(shè)計主要有以下三個部分:
第一,初始化:
Private Sub Form Initialize()
Hl=200
H2 =130
H3=200
Me.BackColor=RGB( 100, H2, H3)
Me.ForeColor=RGB( 224, 236, 152) End Sub
第二,Timerl的timer事件代碼:
Private Sub Timerl_Timer( )I
fH2.Valuegt;0 Then
H2.Value=H2.Value -5
Else
H2.Value=0 Endlf IfHl.Valuelt; 255 Then
Hl.Value=Hl.Value+5
Else
Hl.Value=255
Endlf IfH3.Valuelt; 255 Then
H3.Value=H3.Value+5 Else
H3.Value=255
Endlf
Me.BackColor=RGB(0,H2.Value,
H3.Value)
IfH2.Value=00r H3.Value=255 Then Timer2.1nterval=500
End Sub
第三,Timer2的timer事件代碼:
Private Sub Timer2_Timer()
Dimn As Integer, xAs Integer, yAs Integer
Randomize
n=10*Rnd()
x=Me.ScaleWidth8 Rnd()
v=Me.ScaleHeight8Rnd()
Me.CurrentX=X
Me.CurrentY=y
Me.FontSize=10* Rnd()
Me.Print”★”
End Sub程序運行效果如下圖:
最后,可以通過生成EXE文件將其編譯成一個可執(zhí)行程序。
四、補充
這個小程序如果運行時間長,因為星星一直在增加,當(dāng)星星太多時,窗口顯得凌亂不好看,可以考慮增加一個全局變量做計數(shù)器,當(dāng)星星超過一定數(shù)量時進(jìn)行清屏。代碼如下:
1.定義變量t:dimt as integer
2.在窗口初始化事件中增加對t賦初值的語句:t=0
3.在Timer2的timer事件中增加一個判斷結(jié)構(gòu):
Ift=60Then Me.Cls t=0 Else t=t+l End If
這個判斷結(jié)構(gòu)可以實現(xiàn)當(dāng)星星數(shù)量到達(dá)60時,對窗口進(jìn)行清屏,并對計數(shù)器t清零。
五、總結(jié)
VB程序設(shè)計語言的學(xué)習(xí),主要從兩個方面人手:一方面是界面設(shè)計,主要是各種控件及其屬性、方法和事件的學(xué)習(xí),以及窗口控件安排的美觀問題。本案例界面上的控件全部為不可見,所以不涉及布局問題。其次是代碼設(shè)計的學(xué)習(xí)。VB語言是結(jié)構(gòu)化程序設(shè)計語言,主要是三種控制結(jié)構(gòu)的學(xué)習(xí):順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu),本案例涉及到順序結(jié)構(gòu)和選擇結(jié)構(gòu)。另外,VB的特色是事件驅(qū)動,所以對事件的學(xué)習(xí)很重要,能夠合理選擇事件實現(xiàn)程序效果是VB程序設(shè)計技巧的關(guān)鍵。
本案例通過程序設(shè)計來實現(xiàn)動態(tài)變化的視覺效果,其中用到的Timer控件是效果實現(xiàn)的關(guān)鍵。Timer控件的使用可以在窗口上制造出動態(tài)的效果,是設(shè)計應(yīng)用程序經(jīng)常用到的控件。另外,為了模擬星星出現(xiàn)大小不一的狀況以及出現(xiàn)位置的不確定,使用了隨機函數(shù)RND,增加了程序效果的趣味性。