本文我们将通过Visual Basic和 BetterState For Visual Basic来设计一个简单的例子。这个例子的主要目的是在BetterState环境下设计状态图。对于用户来说,就是建立设计的Visual Basic前端部分。
在这个例子中我们使用VB代码生成器,因为这种代码生成器是每个版本的BetterState Pro都提供的。
考虑一个简单的例子:一个VB窗口,包含一个标准的Visual Basic定时器控件,命名为Timer1;和一个自定义图片控件,用来表示一个交通灯,命名为Light1。它可以是绿色或红色。假设我们希望信号灯在每次Timer事件发生时,在红绿之间变换。这种行为很容易用状态机来模拟,并可视化地表现为一张状态图,如图1所示。
![](/ncre2/Files/2007-5/16/1435199044.gif)
图1 简单的两个状态的交通灯控制器 状态机从Green状态开始,每次Timer1_Timer事件(固定时间间隔)发生,状态机在Red Green两个状态间交替转换,因此适当地改变Light1的Color属性。很显然,我们可以在Timer1_Timer事件中使用简单的VB代码来达到同样的结果,编写子程序,使用一个变量,命名为LightState,它的值为0或1,使用if-then-else语句交替的改变变量的值。
If (LightState=0) Then LightState = 1 Light1.Color = 1 ‘RED Else LightState = 0 Light1.Color = 0 ‘GREEN End If