vb红绿灯交通灯小程序

产品信息

产品名称:数码交通灯v2.0
程序员:MorganFish
邮箱: [email protected]

CSDN:http://blog.csdn.net/MorganFish

GitHub:https://www.github.com/MorganNotFound

以上信息与正文内容无关

代码

首先,感谢您的支持,话不多说,直接上代码:

Dim g As Integer
Dim y As Integer
Dim r As Integer
Private Sub cmdstart_Click()
cmdstart.Visible = False
cmdstop.Visible = True
Timer1.Enabled = True
Label1.Visible = True
Shape1.Visible = True
End Sub
Private Sub cmdstop_Click()
End
End Sub
Private Sub Form_Load()
Form1.BackColor = vbBlack
Label1.BackColor = vbBlack
Shape1.FillColor = vbGreen
Label1.ForeColor = vbGreen
Label1.Caption = g
Shape1.Visible = False
Label1.Visible = False
cmdstop.Visible = False
g = 10
y = 0
r = 0
Timer1.Enabled = False
End Sub
Private Sub Timer1_Timer()
Static n As Integer
   n = n + 1
   Shape1.BackStyle = 1
   Select Case n
      Case 1 To 10
         Shape1.BackColor = vbGreen
         Label1.Caption = g
         Label1.ForeColor = vbGreen
         g = g - 1
         y = 3
      Case 11 To 16
         If n Mod 2 = 1 Then
         Timer1.Interval = 500
            Shape1.BackColor = vbYellow
            Label1.Caption = y
            Label1.ForeColor = vbYellow
            y = y - 1
            r = 10
         Else
            Shape1.BackStyle = 0
         End If
      Case 17 To 26
      Timer1.Interval = 1000
         Shape1.BackColor = vbRed
         Label1.Caption = r
         Label1.ForeColor = vbRed
         r = r - 1
         g = 10
        If n = 26 Then n = 0
   End Select
End Sub

手把手教你制作:

(一)新建一个VisualBasic6.0工程,选择标准exe
vb红绿灯交通灯小程序_第1张图片

(二)插入一个shape,一个label和一个timer,拖到合适位置并拖成合适大小
(三)插入两个CommandButton控件,并将两个的(名称)属性分别改为cmdstartcmdstop,注意,是名称,Caption自己随便取,并把两个拖到一起
vb红绿灯交通灯小程序_第2张图片

(四)更改Shape1.BackStyle属性为1 - Opaque,并把Shape1.Shape属性改为3 - Circle
(五)把Label1.Font自己改一下(建议初号)
(六)将Timer1.Interval设定为1000
(七)插入代码
vb红绿灯交通灯小程序_第3张图片

(八)运行
vb红绿灯交通灯小程序_第4张图片
vb红绿灯交通灯小程序_第5张图片
vb红绿灯交通灯小程序_第6张图片
vb红绿灯交通灯小程序_第7张图片

工作原理

  1. 初始化程序
Dim g As Integer
Dim y As Integer
Dim r As Integer
Private Sub form_load()
  1. 当单击cmdstart按钮,激活Timer1,然后隐藏cmdstart并显示cmdstop控件
Private Sub cmdstart_Click()
cmdstart.Visible = False
cmdstop.Visible = True
Timer1.Enabled = True
Label1.Visible = True
Shape1.Visible = True
End Sub
  1. Timer1被激活的时候,开始运行红绿灯;
    这一段中,我用了一个稍微超纲的一个指令SelectCaseEnd Select,并定义了一个Integer n,使用n = n + 1作为判断灯颜色的标识,if判断,进入循环。
    (中途为了使黄灯闪烁我调整了Timer1.Interval = 500然后又恢复为1000,影响不大)
Private Sub Timer1_Timer()
Static n As Integer
   n = n + 1
   Shape1.BackStyle = 1
   Select Case n
      Case 1 To 10
         Shape1.BackColor = vbGreen
         Label1.Caption = g
         Label1.ForeColor = vbGreen
         g = g - 1
         y = 3
      Case 11 To 16
         If n Mod 2 = 1 Then
         Timer1.Interval = 500
            Shape1.BackColor = vbYellow
            Label1.Caption = y
            Label1.ForeColor = vbYellow
            y = y - 1
            r = 10
         Else
            Shape1.BackStyle = 0
         End If
      Case 17 To 26
      Timer1.Interval = 1000
         Shape1.BackColor = vbRed
         Label1.Caption = r
         Label1.ForeColor = vbRed
         r = r - 1
         g = 10
        If n = 26 Then n = 0
   End Select
End Sub
  1. 最简单的一步,也很有用,方便调试:
Private Sub cmdstop_Click()
   End
End Sub

进阶

经高人指教,有关Label1的数码显示也有别的做法,可以简化程序:
删除g,y,r三个整参数,然后将Label.Caption = g/y/r替换为Abs(n - 11)/Abs(n - 17)/Abs(n - 27)[也可以写成相反数,不用绝对值,Interval属性也可以不用更改,因本人未曾尝试,您自己可以自己调试,估计可以方便许多~]

附言

如果您喜欢我的作品,记得点赞,星标,关注并推荐给小伙伴哦!
因本人能力有限,有失误之处烦请指教,不足之处可以随时提出改进建议,感谢您的支持!
如果您需要成品,也可以直接访问个人GitHub进行下载,可以直接调用,自己也可以修改并生成exe,而且有小惊喜哟~
本文也同时发布于 https://github.com/MorganNotFound/vbtraffic1Timer
仅为个人使用,转载文章请注明出处,商业转载请联系作者

你可能感兴趣的:(vb小程序,小程序,个人开发)