交通灯的 用什么循环让他们无休止的轮流亮
能把代码写出来的 更好
先说声谢谢
试试这个:
Private RedTime As Integer '''红灯亮的时间
Private GreenTime As Integer '''绿灯亮的时间
Private YellowTime As Integer '''黄灯亮的时间
Private Sub Cmd_Click()
RedTime = 3 '''红灯亮的时间为3秒
GreenTime = 3 '''绿灯亮的时间为3秒
YellowTime = 1 '''黄灯亮的时间为1秒
Timer1.Interval = 1000 ''''设定timer1每1秒触发一次事件
End Sub
Private Sub Timer1_Timer()
Static IsRed As Boolean
Static IsGreen As Boolean
Static IsYellow As Boolean
Static i As Integer
'''''这里的i代表秒,1就是1秒
If i >= 0 And i < RedTime Then '''控制红灯亮及时间
IsRed = True
IsGreen = False
IsYellow = False
ElseIf i >= RedTime And i < RedTime + GreenTime Then '''控制绿灯亮及时间
IsRed = False
IsGreen = True
IsYellow = False
ElseIf i >= RedTime + GreenTime And i < RedTime + GreenTime + YellowTime Then '''控制黄灯亮及时间
IsRed = False
IsGreen = False
IsYellow = True
Else
i = 0
Exit Sub
End If
Label1(0).Visible = IsRed
Label1(1).Visible = IsGreen
Label1(2).Visible = IsYellow
Label2(0).Visible = IsRed
Label2(1).Visible = IsGreen
Label2(2).Visible = IsYellow
i = i + 1
Label2(0).Caption = i & "秒"
Label2(1).Caption = i - RedTime & "秒"
Label2(2).Caption = i - RedTime - GreenTime & "秒"
End Sub
看看我做的!
**********************************************
程序需要控件
from*1 =from1
text*3 = text1,text2,text3
timer*1 = timer1
程序设置部分:
设置时间间隔为1秒
代码部分[直接复制下列代码到窗体中]
=================
Private Sub Form_Load()
Text1 = ""
Text2 = ""
Text3 = ""
End Sub
Private Sub Timer1_Timer()
Static a As Integer
a = a + 1
If a = 7 Then a = 1
If a >= 1 And a <= 2 Then
Text1.BackColor = vbRed
Text2.BackColor = vbWhite
Text3.BackColor = vbWhite
End If
If a >= 3 And a <= 4 Then
Text1.BackColor = vbWhite
Text2.BackColor = vbYellow
Text3.BackColor = vbWhite
End If
If a >= 5 And a <= 7 Then
Text1.BackColor = vbWhite
Text2.BackColor = vbWhite
Text3.BackColor = vbGreen
End If
End Sub
====================
通俗语言翻译以上代码
窗体载入的时候:
清空3个文本框的内容
结束
时间内的代码
声明静态一个静态变量 a
每执行一给代码 a 的结果+1
当a = 7 的时候 a 再次 = 1
如果a 的值> = 1 并且 < = 2 那么 文本1的背景为 红 色 其他为白色
如果a 的值> = 3 并且 < = 4 那么 文本2的背景为 黄 色 其他为白色
如果a 的值> = 5 并且 < = 6 那么 文本3的背景为 绿 色 其他为白色
结束
*********************************************
这样写看明白了么???
欢迎到cike技术交流群 一起交流学习 16874787