unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls, Buttons;
type
TForm1 =
class(TForm)
rasen: TImage;
rasen_2: TImage;
rasen_3: TImage;
rasen_4: TImage;
Ampel_3: TImage;
Ampel_2: TImage;
Ampel_4: TImage;
ampel_1: TImage;
auto: TImage;
pb_start: TBitBtn;
Timer: TTimer;
pb_stop: TBitBtn;
Timer_auto: TTimer;
auto_2: TImage;
timer_auto2: TTimer;
procedure pb_startClick(Sender: TObject);
procedure TimerTimer(Sender: TObject);
procedure pb_stopClick(Sender: TObject);
procedure Timer_autoTimer(Sender: TObject);
procedure timer_auto2Timer(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
strasse: integer =1;
i :integer = 1;
rechts: integer =1;
unten:integer =1;
implementation
{$R *.dfm}
procedure TForm1.pb_startClick(Sender: TObject);
begin
timer.Enabled := true;
pb_start.Enabled := false;
pb_stop.Enabled := true;
end;
procedure TForm1.TimerTimer(Sender: TObject);
begin
case strasse
of
1:
Case i
of
1:
Begin
// Ampeln auf Grün
ampel_4.Picture.LoadFromFile('
./grün_waage.bmp');
ampel_3.Picture.LoadFromFile('
./grün_waage.bmp');
timer_auto.Enabled := true;
//Ampeln auf Rot
ampel_1.Picture.LoadFromFile('
./rot_senk.bmp');
ampel_2.Picture.LoadFromFile('
./rot_senk.bmp');
//umschalten auf Gelb
i := i + 1;
End;
2:
Begin
// Ampeln auf Gelb
ampel_4.Picture.LoadFromFile('
./gelb_waage.bmp');
ampel_3.Picture.LoadFromFile('
./gelb_waage.bmp');
//Ampeln auf Rot/Gelb
ampel_1.Picture.LoadFromFile('
./rotgelb_senk.bmp');
ampel_2.Picture.LoadFromFile('
./rotgelb_senk.bmp');
//umschalten auf rot
i := 1;
strasse := 2;
End;
End;
2:
Case i
of
1:
Begin
// Ampeln auf Rot
ampel_4.Picture.LoadFromFile('
./rot_waage.bmp');
ampel_3.Picture.LoadFromFile('
./rot_waage.bmp');
//Ampeln auf Grün
ampel_1.Picture.LoadFromFile('
./grün_senk.bmp');
ampel_2.Picture.LoadFromFile('
./grün_senk.bmp');
timer_auto2.Enabled := true;
//umschalten auf Gelb
i := i + 1;
End;
2:
Begin
// Ampeln auf Gelb
ampel_4.Picture.LoadFromFile('
./rotgelb_waage.bmp');
ampel_3.Picture.LoadFromFile('
./rotgelb_waage.bmp');
//Ampeln auf Rot/Gelb
ampel_1.Picture.LoadFromFile('
./gelb_senk.bmp');
ampel_2.Picture.LoadFromFile('
./gelb_senk.bmp');
//umschalten auf rot
i := 1;
strasse := 1;
End;
End;
End;
end;
procedure TForm1.pb_stopClick(Sender: TObject);
begin
timer.Enabled := false;
pb_stop.Enabled := false;
pb_start.Enabled := true;
timer_auto.Enabled := false;
timer_auto2.Enabled := false;
auto.Left := 400;
auto_2.Top := 272;
end;
procedure TForm1.Timer_autoTimer(Sender: TObject);
begin
auto.Left := auto.left - 10;
if auto.Left < -130
then Begin
auto.Left := 650;
rechts := 2;
End;
if rechts = 2
then
if auto.left = 400
then Begin
timer_auto.Enabled := false;
auto.left := 400;
rechts := 1;
End;
end;
procedure TForm1.timer_auto2Timer(Sender: TObject);
begin
auto_2.top := auto_2.top - 10;
if auto_2.top < -129
then Begin
auto_2.top := 445;
unten := 2;
End;
if unten = 2
then
if auto_2.Top < 280
then Begin
timer_auto2.Enabled := false;
auto_2.Top := 272;
unten := 1;
End;
end;
end.