一、界面設計
新建一個標准的EXE工程。在Form1窗體中放置一個定時器(Timer1)、兩個文本框(Label1,Label2)、兩個命令按鈕(Command1,Command2)和包含7個元素的控件數組(Label3(0)—Label3(6))。
二、屬性設置
Label3控件數組中的所有元素皆采用相同設置。
三、代碼編寫
本程序的實現原理是:當用戶單擊“開始”按鈕時,打開定時器,利用定時器控件同時產生兩個隨機數sj1、sj2,sj1的范圍是1~32,sj2的范圍是0~49。當sj1=24的時侯,用sj2與前面產生的中獎號碼作比較,若與前面的中獎相同,則退出本過程;若與前面的中獎號碼不同,則將此隨機數作為中獎號碼。當產生了7個中獎號碼時,關閉定時器控件,停止產生隨機數。
本程序用到的函數簡介:
(1)Randomize:初始化隨機數的種子數。
(2)Int():返回一個非整形數字取整後的整數。
(3)Rnd:產生一個0~1之間的隨機數(大於等於0,但小於1)。
(4)Qbcolor():返回參數(0~15)對應的顏色。
(5)Val:將一個字符形變量轉化為一個數值型變量。
(6)Format:格式化一個表達式。
以下是程序的完整代碼:
Dim sy As Integer ′命令按鈕1的單擊事件 Private Sub Command1_Click() ′清除Label3控件數組的內容 For i=0 To 6 Label3(i).Caption=″″ Next Timer1.Enabled=True′打開定時器 Command1.Enabled=False′使開始按鈕失效 sy=-1′索引值初始化為-1 End Sub ′命令按鈕2的單擊事件 Private Sub Command2_Click() Unload Me ′卸載本窗體 End Sub ′定時器1的定時事件 Private Sub Timer1_Timer() Dim sj1,sj2,ys As Integer Randomize′初始化隨機數 sj1=Int(Rnd*32)+1 sj2=Int(Rnd*50) Label1.Caption=sj1′設置標簽1的內容 ys=Int(Rnd*6)+9 Label1.ForeColor=QBColor(ys) If sj2=24 Then′如果sj2等於24 sy=sy+1′索引值加1 For a=o To sy If sj1=Val(Label3(a).Caption) Then sy=sy - 1 Exit Sub End If Next Label3(sy).Caption=Format(sj1, ″00″) Label3(sy).ForeColor=QBColor(ys) End If If sy=6 Then′如果索引值等於6 Timer1.Enabled=False ′關閉定時器 Command1.Enabled=True ′使命令按鈕有效(即可重新開始抽獎) End If End Sub
單擊工具欄上的“啟動”按鈕,啟動抽獎程序。單擊“開始”按鈕,Label1控件將用五彩缤紛的顏色快速顯示1~32之間的數字,並在Label3控件數組中產生一組7個數字的中獎號碼。再次單擊“開始”按鈕,程序將自動清除Label3控件數組中的內容,並重新產生一組7個數字的中獎號碼(與前面的不相同)。