红绿灯模拟

  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.

 

 

posted on 2014-12-05 10:22  @冰糖  阅读(307)  评论(0编辑  收藏  举报

导航