Dim i As Integer '通用部分声明公共变量

来源:百度知道 编辑:UC知道 时间:2024/06/21 10:33:25
Dim i As Integer '通用部分声明公共变量
Private Sub Timer1_Timer()
i = i + 1
If i > 3 Then i = 1
Label1.ForeColor = Choose(i, vbRed, vbGreen, vbBlue)
End Sub
为什么一定要在通用部分定义 i变量呢?

通用变量的好处是:它的作用范围是该模块内的所有过程(函数),它不需要重新赋值,且每次产生的值为下次所用。你的例子中的i就是这样的:每调用一次i值就加1,所以会出现不同的颜色,正符合你的要求;
如果你在 Timer1_Timer内定义变量i,则它的作用范围为本过程(函数)之内,当运行一次后,i便被注销,当下一次调用Timer1_Time时,i又重新被定义,并重新被赋初值,即i=1,这样的结果必然是Label1.ForeColor永远等于1,这并不是我们所需要的。

综上所述,设置变量的作用范围是非常重要的。

你也可以不用在通用部分定义 i变量。以下定义会更有效:

Private Sub Timer1_Timer()
Static i As Integer '声明局部静态变量
i = i + 1
If i > 3 Then i = 1
Label1.ForeColor = Choose(i, vbRed, vbGreen, vbBlue)
End Sub

在通用部分定义 i变量,
那么其它子程序也可以使用这个变量,
这个变量的值的变化其它子程序也可以查到

其他部分也用到了i。