vb6编写的代码哪点出错了?

来源:百度知道 编辑:UC知道 时间:2024/06/15 09:40:29
题目:用信号灯指挥交通,在窗体添加图片框p1和p2,分别代表信号灯和汽车,timer1控制信号灯的变化,timer2控制信号灯的变化,单击“开车”按钮,汽车向右移动,当绿灯亮时车继续前进,红灯亮时停止前进,待绿灯亮时继续前进。

下面是我写的代码,请高手指正:
Private Sub Command1_Click()
Timer2.Enabled = true
End Sub
Private Sub Form_Load()
Image1.Picture = LoadPicture("H:\VB作业\绿灯.ico")
Timer2.Enabled = false
End Sub
Private Sub Timer1_Timer()
If Image1.Picture = LoadPicture("H:\VB作业\绿灯.ico") Then Image1.Picture = LoadPicture("H:\VB作业\红灯.ico")
If Image1.Picture = LoadPicture("H:\VB作业\红灯.ico") Then Image1.Picture = LoadPicture("H:\VB作业\绿灯.ico")
End Sub

Private Sub Timer2_Timer()
If Image1.Picture = LoadPicture("H:\VB作业\绿灯.ico") Then
Image2.Left = Image2.Left + 10
Else
Image2.Left = Image2.Left
End If
End Sub

其中:timer1的interval为2000,timer2的interval为10
我感到错误就在timer1中image1的pict

If Image1.Picture = LoadPicture("H:\VB作业\绿灯.ico") Then

这个判断有问题,不可以这样,建议用一个标志变量判断


Dim flag As Boolean

Private Sub Command1_Click()
Timer2.Enabled = True
Timer1.Enabled = True
End Sub
Private Sub Form_Load()
Image1.Picture = LoadPicture("e:\white.gif")
Timer2.Enabled = False
End Sub
Private Sub Timer1_Timer()
If flag Then
Image1.Picture = LoadPicture("e:\black.gif")
Else
Image1.Picture = LoadPicture("e:\white.gif")
End If
flag = Not flag
End Sub

Private Sub Timer2_Timer()
If flag Then
Image2.Left = Image2.Left + 10
Else
Image2.Left = Image2.Left
End If
End Sub

'这么改:
Private Sub Command1_Click()
Timer1.Enabled = True
Timer2.Enabled = True
End Sub
Private Sub Form_Load()
Image1.Picture = LoadPicture("H:\VB作业\绿灯.ico")<