在考生文件夹下有一个过程文件sjt5.vbp,窗体上有两个图片框,名称为P1、P2,分别用来表示信号灯和汽车,其中在P1中轮流装入“黄灯.ico”、“红灯.ico’、“绿灯.ico”文件来实现信号灯的切换;还有两个计时器Timer1和Timer2,Timer1用于变换信号灯,黄灯1秒,红灯2秒,绿灯3秒;Timer2用于控制汽车向左移动。运行时,信号灯不断变换。单击“车按”按钮后,汽车开始移动,如果移动到信号灯前或信号灯下,遇到红灯或黄灯,则停止移动,当变为绿灯后再继续移动。在窗体中已经给出了全部控件和程序,但程序不完整,要求阅读程序并去掉程序中的注释符,把程序中的改为正确的内容,使其实现上述功能,但不能修改程序中的其他部分,也不能修改控件的属性。最后把修改后的文件以原文件名存盘。sjt5.frm文件内容如下: Dim a%,b As Boolean Private Sub C1_Click() ’ Timer2.Enabled= b=True End Sub Private Sub Timer1_Timer() a=a+1 If a>6 Then a=1 End If Select Case a Case 1P1.Picture=LoadPicture("黄灯.ico" ) Case 2,3P1.Picture=LoadPicture("红灯.ico") Case 4,5,6 ’ P1.Picture=LoadPicture("")If b Then Timer2.Enabled=True End Select End SubPrivate Sub Timer2_Timer()If (a<4) And (P2.Left>P1.Left And P2.Left<P1.Left+P1.Width)Or P2.Left<=100 Then’ Timer2.Enabled=Else’ P2.Move —10,P2.Top,P2.Width,P2.HeightEnd IfEnd Sub
参考答案:
解析:① 对象主要属性设置如表4所示。
表 4
对象 | 对象名 | 属性名 | 属性值 |
窗体 | Form1 | Caption | Form1 |
图片框 | P1 | ||
图片框 | P2 | Picture | CARS.ICO |
命令按钮 | C1 | Caption | 开车 |
计时器 | Timer1 | Interval | 20 |
计时器 | Timer2 | Interval | 1000 |
Enabled | False |
Move方法的格式为:Object. Move left, top, width, height
· object为一个对象;
· left(必需的)为object左边的水平坐标(x—轴);
· top(可选的)为object顶边的垂直坐标(y—轴);
· width(可选的)为object新的宽度;
· height(可选的)为object新的高度。
③ 编程代码:
Dim a%,b As Boolean
Private Sub C1_Click()
Timer2. Enabled=True
b=True
End Sub
Private Sub Timer1_Timer()
a=a+1
If a>6 Then
a=1
End If
Select Case a
Case 1
P1.Picture=LoadPicture("黄灯.ico")
Case 2,3
P1.Picture=LoadPicture("红灯.ico")
Case 4,5,6
P1.Picture=LoadPieture("绿灯.ico")
If b Then Timer2. Enabled=True
End Select
End Sub
Private Sub Timer2_Timer()
If (a<4) And (P2. Left>P1.Left And P2.Left<P1.Left+P1. Width)
Or P2. Left<=100 Then
Timer2. Enabled=False
Else
P2. Move P2. Left—10, P2. Top, P2.Width, P2.Height
End If
End Sub