这是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 = False Else Label1.Visible = True End 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 If End Sub Private Sub Timer1_Timer() '控制是否闪烁 If Label1.Visible = True Then Label1.Visible = False Else Label1.Visible = True End If Randomize '控制变色 Label1.ForeColor = RGB(Int(256 * Rnd), Int(256 * Rnd), Int(256 * Rnd)) End Sub