VB語言基礎重要知識點08
- 2019 年 10 月 10 日
- 筆記
這是VB語言基礎知識第8期。
一、手動控制閃爍狀態
我們先簡單實現一個小程式。
通過控制timer控制項的enable屬性來設置文字是否閃爍。
如果檢測按鈕文字為「停止」,那麼設置按鈕文字為「閃爍」。
如果檢測按鈕文字為「閃爍」,那麼設置按鈕文字為「停止」。
程式效果1
程式效果2
程式介面包含控制項:1.timer1時鐘控制項。2.label1標籤控制項。3.command1按鈕控制項。程式介面設計如下:
介面設計
時鐘控制項的設置屬性:
按鈕的程式碼:
If Command2.Caption = "停止" Then Timer1.Enabled = False Command2.Caption = "閃爍"Else Timer1.Enabled = True Command2.Caption = "停止"End If
時鐘控制項timer1的源程式碼:
'控制是否閃爍If Label1.Visible = True Then Label1.Visible = FalseElse Label1.Visible = TrueEnd If Randomize '控制變色Label1.ForeColor = RGB(Int(256 * Rnd), Int(256 * Rnd), Int(256 * Rnd))
程式控制的邏輯思想:通過判斷按鈕上面的文字來控制時鐘控制項是否啟用,同時在程式碼邏輯中插入按鈕文字的切換。
通過以上程式,我們看出程式中進行了顏色的控制,我們通過rgb函數和rnd隨機數控制我們文字隨機變色,會顯得很漂亮。那麼,隨機數該如何使用呢?
二、隨機數知識要點
隨機數關鍵詞是rnd,這個關鍵詞代表的範圍是0到1之間,包含0,不包含1。我們使用表達式來表述為 0<=rnd<1
Randomize的作用:是為了讓rnd的隨機數增大不同的概率。
為什麼randomize會增大不同概率?
因為randomize默認以系統時間作為種子單位。
我們在數學集合中也有範圍的表示方式,用[中括弧表示包括,用)小括弧表示不包含。
0<=rnd<1用 [0,1)來表示。
那麼我們使用rnd來表示一下數值的範圍:
255*rnd 表示的範圍:[0,255)
rnd+254 表示的範圍:[254,255)
rnd*220+10 表示的範圍:[10,230)
rnd*70+30 [30,100)
我們知道在rgb函數中,每個參數的範圍為0~255之間的整數。
提問:如何用rnd表示0到256之間的隨機數?
rnd*256表示的是[0,256)
在以上知識中,我們求出的是實數的範圍,那麼我們該如何來求整數呢?此時,我們需要的是向下取整函數。
向下取整函數使用 int函數表示。
理解向下取整:結果是比這個數最靠近的小的整數。
3.3向下取整的結果是3
3.5向下取整的結果是3
3.9向下取整的結果是3
-3.3向下取整的結果是-4
最後,我們來表示[0,255]之間所有的整數: int(rnd*256)
本節教程所有程式碼:
Private Sub Command1_Click()Print Label1.Visible End Sub Private Sub Command2_Click()If Command2.Caption = "停止" Then Timer1.Enabled = False Command2.Caption = "閃爍"Else Timer1.Enabled = True Command2.Caption = "停止"End IfEnd Sub Private Sub Timer1_Timer() '控制是否閃爍If Label1.Visible = True Then Label1.Visible = FalseElse Label1.Visible = TrueEnd If Randomize '控制變色Label1.ForeColor = RGB(Int(256 * Rnd), Int(256 * Rnd), Int(256 * Rnd)) End Sub