mirror of
https://github.com/ulfgebhardt/delphi_ampel.git
synced 2025-12-12 23:35:54 +00:00
216 lines
3.5 KiB
ObjectPascal
216 lines
3.5 KiB
ObjectPascal
unit newclasses;
|
|
|
|
interface
|
|
|
|
uses ExtCtrls;
|
|
|
|
type TAmpelPlatz = class
|
|
public
|
|
X:integer;
|
|
Y:Integer;
|
|
Width:integer;
|
|
Height:integer;
|
|
Besetzt:boolean;
|
|
end;
|
|
|
|
type TFussgaenger = class
|
|
public
|
|
Image:TImage;
|
|
Speed:integer;
|
|
momSpeedx:integer;
|
|
momSpeedy:integer;
|
|
Active:boolean;
|
|
AngesteuerterAmpelPlatz:integer;
|
|
AufStrasse:boolean;
|
|
|
|
constructor create;
|
|
destructor destroy;
|
|
end;
|
|
|
|
type TAuto = class
|
|
public
|
|
Image:TImage;
|
|
Speed:integer;
|
|
momSpeed:integer;
|
|
BlinkerL:boolean;
|
|
BlinkerR:boolean;
|
|
Fahrbahn:integer;
|
|
Active:boolean;
|
|
end;
|
|
|
|
type TAutoAmpel = class
|
|
public
|
|
Rot:TImage;
|
|
Gruen:TImage;
|
|
Gelb:TImage;
|
|
|
|
State:integer;
|
|
end;
|
|
|
|
type TFussgaengerAmpel = class
|
|
public
|
|
Rot:TImage;
|
|
Gruen:TImage;
|
|
|
|
State:boolean;
|
|
end;
|
|
|
|
type TAmpelSystem = class
|
|
public
|
|
ARAmpel:TAutoAmpel;
|
|
ALAmpel:TAutoAmpel;
|
|
FOAmpel:TFussgaengerAmpel;
|
|
FUAmpel:TFussgaengerAmpel;
|
|
FOKnopf:boolean; //Fußgängerknopf Oben
|
|
FUKnopf:boolean;
|
|
Changing:boolean;
|
|
|
|
constructor create;
|
|
destructor destroy;
|
|
|
|
procedure setFGruen;
|
|
procedure setFRot;
|
|
procedure setAGruen;
|
|
procedure setAGelb;
|
|
procedure setARotGelb;
|
|
procedure setARot;
|
|
|
|
procedure changeToF;
|
|
|
|
end;
|
|
|
|
implementation
|
|
|
|
uses ampelu,functions;
|
|
|
|
procedure TAmpelSystem.changeToF;
|
|
begin
|
|
|
|
changing:=true;
|
|
fAmpel.AmpelTimer.enabled:=true;
|
|
|
|
end;
|
|
|
|
procedure TAmpelSystem.setFGruen;
|
|
begin
|
|
|
|
FOAmpel.Gruen.Visible:=true;
|
|
FOAmpel.Rot.Visible:=false;
|
|
FOAmpel.State:=true;
|
|
|
|
FUAmpel.Gruen.Visible:=true;
|
|
FUAmpel.Rot.Visible:=false;
|
|
FUAmpel.State:=true;
|
|
|
|
end;
|
|
|
|
procedure TAmpelSystem.setFRot;
|
|
begin
|
|
|
|
FOAmpel.Gruen.Visible:=false;
|
|
FOAmpel.Rot.Visible:=true;
|
|
FOAmpel.State:=false;
|
|
|
|
FUAmpel.Gruen.Visible:=false;
|
|
FUAmpel.Rot.Visible:=true;
|
|
FUAmpel.State:=false;
|
|
|
|
end;
|
|
|
|
procedure TAmpelSystem.setAGruen;
|
|
begin
|
|
|
|
ARAmpel.Gruen.Visible:=true;
|
|
ARAmpel.Gelb.Visible:=false;
|
|
ARAmpel.Rot.Visible:=false;
|
|
ARAmpel.State:=0;
|
|
ALAmpel.Gruen.Visible:=true;
|
|
ALAmpel.Gelb.Visible:=false;
|
|
ALAmpel.Rot.Visible:=false;
|
|
ALAmpel.State:=0;
|
|
|
|
|
|
end;
|
|
|
|
procedure TAmpelSystem.setAGelb;
|
|
begin
|
|
|
|
ARAmpel.Gruen.Visible:=false;
|
|
ARAmpel.Gelb.Visible:=true;
|
|
ARAmpel.Rot.Visible:=false;
|
|
ARAmpel.State:=1;
|
|
ALAmpel.Gruen.Visible:=false;
|
|
ALAmpel.Gelb.Visible:=true;
|
|
ALAmpel.Rot.Visible:=false;
|
|
ALAmpel.State:=1;
|
|
|
|
end;
|
|
|
|
procedure TAmpelSystem.setARot;
|
|
begin
|
|
|
|
ARAmpel.Gruen.Visible:=false;
|
|
ARAmpel.Gelb.Visible:=false;
|
|
ARAmpel.Rot.Visible:=true;
|
|
ARAmpel.State:=2;
|
|
ALAmpel.Gruen.Visible:=false;
|
|
ALAmpel.Gelb.Visible:=false;
|
|
ALAmpel.Rot.Visible:=true;
|
|
ALAmpel.State:=2;
|
|
|
|
end;
|
|
|
|
procedure TAmpelSystem.setARotGelb;
|
|
begin
|
|
|
|
ARAmpel.Gruen.Visible:=false;
|
|
ARAmpel.Gelb.Visible:=true;
|
|
ARAmpel.Rot.Visible:=true;
|
|
ARAmpel.State:=3;
|
|
ALAmpel.Gruen.Visible:=false;
|
|
ALAmpel.Gelb.Visible:=true;
|
|
ALAmpel.Rot.Visible:=true;
|
|
ALAmpel.State:=3;
|
|
|
|
end;
|
|
|
|
constructor TAmpelSystem.create;
|
|
begin
|
|
|
|
ARAmpel:=TAutoAmpel.Create;
|
|
ALAmpel:=TAutoAmpel.Create;
|
|
|
|
FOAmpel:=TFussgaengerAmpel.Create;
|
|
FUAmpel:=TFussgaengerAmpel.Create;
|
|
|
|
changing:=false;
|
|
|
|
end;
|
|
|
|
destructor TAmpelSystem.destroy;
|
|
begin
|
|
|
|
ARAmpel.free;
|
|
ALAmpel.free;
|
|
FOAmpel.free;
|
|
FUAmpel.free;
|
|
|
|
end;
|
|
|
|
constructor TFussgaenger.create;
|
|
begin
|
|
|
|
Image:=TImage.Create(fAmpel);
|
|
|
|
end;
|
|
|
|
destructor TFussgaenger.destroy;
|
|
begin
|
|
|
|
Image.Free;
|
|
|
|
end;
|
|
|
|
end.
|
|
|