1 unit TrafficLight3; 2 3 interface 4 5 uses 6 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, 7 Dialogs, StdCtrls, ExtCtrls; 8 9 type 10 TForm1 = class(TForm) 11 Shape1: TShape; 12 Shape2: TShape; 13 Shape3: TShape; 14 Panel1: TPanel; 15 Label1: TLabel; 16 Timer4: TTimer; 17 Label2: TLabel; 18 procedure Timer4Timer(Sender: TObject); 19 private 20 { Private declarations } 21 public 22 { Public declarations } 23 end; 24 25 var 26 Form1: TForm1; 27 28 implementation 29 30 {$R *.dfm} 31 { 32 procedure TForm1.Timer1Timer(Sender: TObject); 33 begin 34 if label1.Caption<>‘1‘ then 35 label1.Caption:=IntToStr(StrToInt(Label1.Caption)-1) 36 else 37 begin 38 Shape1.Brush.Color:=clSilver; 39 Shape3.Brush.Color:=clSilver; 40 Shape2.Brush.Color:=clYellow; 41 Timer2.Enabled:=True; 42 Timer1.Enabled:=False; 43 Timer3.Enabled:=False; 44 Label1.Caption:=‘4‘; 45 46 end; 47 end; 48 49 50 procedure TForm1.Timer2Timer(Sender: TObject); 51 begin 52 if label1.Caption<>‘1‘ then 53 label1.Caption:=IntToStr(StrToInt(Label1.Caption)-1) 54 else 55 begin 56 Shape2.Brush.Color:=clSilver; 57 Shape3.Brush.Color:=clSilver; 58 Shape1.Brush.Color:=clRed; 59 Timer1.Enabled:=True; 60 Timer2.Enabled:=False; 61 Timer3.Enabled:=False; 62 Label1.Caption:=‘5‘; 63 64 end; 65 end; 66 67 procedure TForm1.Timer3Timer(Sender: TObject); 68 begin 69 if label1.Caption<>‘1‘ then 70 label1.Caption:=IntToStr(StrToInt(Label1.Caption)-1) 71 else 72 begin 73 Shape1.Brush.Color:=clSilver; 74 Shape2.Brush.Color:=clSilver; 75 Shape3.Brush.Color:=clGreen; 76 Timer3.Enabled:=True; 77 Timer2.Enabled:=False; 78 Timer1.Enabled:=False; 79 Label1.Caption:=‘6‘; 80 81 end; 82 end; 83 84 } 85 86 87 var 88 n:Integer=0; 89 procedure TForm1.Timer4Timer(Sender: TObject); 90 begin 91 n:=n+1; 92 Label2.Caption:=IntToStr(n); 93 if n<=10 then 94 95 begin 96 97 Shape2.Brush.Color:=clSilver; 98 Shape3.Brush.Color:=clSilver; 99 Shape1.Brush.Color:=clGreen; 100 if label1.Caption<>‘1‘ then 101 label1.Caption:=IntToStr(StrToInt(Label1.Caption)-1) 102 else 103 begin 104 105 Label1.Caption:=‘5‘; 106 end; 107 end; 108 109 if (n>5) and (n<=10) then 110 111 begin 112 if n mod 2=0 then 113 begin 114 Shape1.Brush.Color:=clGreen; 115 Shape3.Brush.Color:=clSilver; 116 Shape2.Brush.Color:=clBlack; 117 end 118 else 119 begin 120 121 122 Shape1.Brush.Color:=clGreen; 123 Shape3.Brush.Color:=clSilver; 124 Shape2.Brush.Color:=clYellow; 125 end; 126 if label1.Caption<>‘1‘ then 127 label1.Caption:=IntToStr(StrToInt(Label1.Caption)-1) 128 else 129 begin 130 Label1.Caption:=‘10‘; 131 end; 132 133 end; 134 135 if (n>10) and (n<=20) then 136 begin 137 Shape2.Brush.Color:=clSilver; 138 Shape1.Brush.Color:=clSilver; 139 Shape3.Brush.Color:=clRed; 140 if label1.Caption<>‘1‘ then 141 label1.Caption:=IntToStr(StrToInt(Label1.Caption)-1) 142 else 143 begin 144 145 Label1.Caption:=‘10‘; 146 n:=0; 147 end; 148 149 end; 150 end; 151 152 end.
时间: 2024-10-24 12:23:31