initial commit
35
Ampel.cfg
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
-$A8
|
||||||
|
-$B-
|
||||||
|
-$C+
|
||||||
|
-$D+
|
||||||
|
-$E-
|
||||||
|
-$F-
|
||||||
|
-$G+
|
||||||
|
-$H+
|
||||||
|
-$I+
|
||||||
|
-$J-
|
||||||
|
-$K-
|
||||||
|
-$L+
|
||||||
|
-$M-
|
||||||
|
-$N+
|
||||||
|
-$O+
|
||||||
|
-$P+
|
||||||
|
-$Q-
|
||||||
|
-$R-
|
||||||
|
-$S-
|
||||||
|
-$T-
|
||||||
|
-$U-
|
||||||
|
-$V+
|
||||||
|
-$W-
|
||||||
|
-$X+
|
||||||
|
-$YD
|
||||||
|
-$Z1
|
||||||
|
-cg
|
||||||
|
-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
|
||||||
|
-H+
|
||||||
|
-W+
|
||||||
|
-M
|
||||||
|
-$M16384,1048576
|
||||||
|
-K$00400000
|
||||||
|
-LE"c:\programme\delphi\Projects\Bpl"
|
||||||
|
-LN"c:\programme\delphi\Projects\Bpl"
|
||||||
82
Ampel.dof
Normal file
@ -0,0 +1,82 @@
|
|||||||
|
[FileVersion]
|
||||||
|
Version=6.0
|
||||||
|
[Compiler]
|
||||||
|
A=8
|
||||||
|
B=0
|
||||||
|
C=1
|
||||||
|
D=1
|
||||||
|
E=0
|
||||||
|
F=0
|
||||||
|
G=1
|
||||||
|
H=1
|
||||||
|
I=1
|
||||||
|
J=0
|
||||||
|
K=0
|
||||||
|
L=1
|
||||||
|
M=0
|
||||||
|
N=1
|
||||||
|
O=1
|
||||||
|
P=1
|
||||||
|
Q=0
|
||||||
|
R=0
|
||||||
|
S=0
|
||||||
|
T=0
|
||||||
|
U=0
|
||||||
|
V=1
|
||||||
|
W=0
|
||||||
|
X=1
|
||||||
|
Y=1
|
||||||
|
Z=1
|
||||||
|
ShowHints=1
|
||||||
|
ShowWarnings=1
|
||||||
|
UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
|
||||||
|
[Linker]
|
||||||
|
MapFile=0
|
||||||
|
OutputObjs=0
|
||||||
|
ConsoleApp=1
|
||||||
|
DebugInfo=0
|
||||||
|
RemoteSymbols=0
|
||||||
|
MinStackSize=16384
|
||||||
|
MaxStackSize=1048576
|
||||||
|
ImageBase=4194304
|
||||||
|
ExeDescription=
|
||||||
|
[Directories]
|
||||||
|
OutputDir=
|
||||||
|
UnitOutputDir=
|
||||||
|
PackageDLLOutputDir=
|
||||||
|
PackageDCPOutputDir=
|
||||||
|
SearchPath=
|
||||||
|
Packages=vcl;rtl;vclx;VclSmp;vclshlctrls;fileinfo;gif;Indy60;semipanel;Zip;Simons;ztreeviewpack;trayico;Transbutton
|
||||||
|
Conditionals=
|
||||||
|
DebugSourceDirs=
|
||||||
|
UsePackages=0
|
||||||
|
[Parameters]
|
||||||
|
RunParams=
|
||||||
|
HostApplication=
|
||||||
|
Launcher=
|
||||||
|
UseLauncher=0
|
||||||
|
DebugCWD=
|
||||||
|
[Version Info]
|
||||||
|
IncludeVerInfo=1
|
||||||
|
AutoIncBuild=0
|
||||||
|
MajorVer=1
|
||||||
|
MinorVer=0
|
||||||
|
Release=0
|
||||||
|
Build=0
|
||||||
|
Debug=0
|
||||||
|
PreRelease=0
|
||||||
|
Special=0
|
||||||
|
Private=0
|
||||||
|
DLL=0
|
||||||
|
Locale=1031
|
||||||
|
CodePage=1252
|
||||||
|
[Version Info Keys]
|
||||||
|
CompanyName=Yeminy
|
||||||
|
FileDescription=
|
||||||
|
FileVersion=0.005
|
||||||
|
InternalName=
|
||||||
|
LegalCopyright=(c) by Yeminy
|
||||||
|
LegalTrademarks=
|
||||||
|
OriginalFilename=
|
||||||
|
ProductName=
|
||||||
|
ProductVersion=0.005
|
||||||
32
Ampel.dpr
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
program Ampel;
|
||||||
|
|
||||||
|
uses
|
||||||
|
Forms,
|
||||||
|
sysutils,
|
||||||
|
dialogs,
|
||||||
|
Splashu in 'Splashu.pas' {fSplash},
|
||||||
|
Optionsu in 'Optionsu.pas' {fOptions},
|
||||||
|
Ampelu in 'Ampelu.pas' {fAmpel},
|
||||||
|
vars in 'vars.pas',
|
||||||
|
functions in 'functions.pas',
|
||||||
|
newclasses in 'newclasses.pas';
|
||||||
|
|
||||||
|
{$R *.res}
|
||||||
|
|
||||||
|
begin
|
||||||
|
Application.Initialize;
|
||||||
|
|
||||||
|
//Alle Bilder vorhanden?
|
||||||
|
if (fileexists(ImgFAGruen)) and (fileexists(ImgFARot)) and (fileexists(ImgStreet)) and (fileexists(ImgAAGruen)) and (fileexists(ImgAAGelb)) and (fileexists(ImgAARot)) then else
|
||||||
|
begin
|
||||||
|
showmessage('Es sind nicht alle nötigen Bilder vorhanden! -> Programm wird geschlossen!');
|
||||||
|
Application.Terminate;
|
||||||
|
exit;
|
||||||
|
end;
|
||||||
|
|
||||||
|
Application.CreateForm(TfSplash, fSplash);
|
||||||
|
Application.CreateForm(TfOptions, fOptions);
|
||||||
|
Application.CreateForm(TfAmpel, fAmpel);
|
||||||
|
fSplash.ShowModal;
|
||||||
|
{Application.Run;}
|
||||||
|
end.
|
||||||
160
Ampelu.dfm
Normal file
@ -0,0 +1,160 @@
|
|||||||
|
object fAmpel: TfAmpel
|
||||||
|
Left = 164
|
||||||
|
Top = 133
|
||||||
|
HorzScrollBar.Visible = False
|
||||||
|
VertScrollBar.Visible = False
|
||||||
|
AlphaBlend = True
|
||||||
|
AutoScroll = False
|
||||||
|
BorderIcons = [biSystemMenu, biMinimize]
|
||||||
|
Caption = 'Ampel'
|
||||||
|
ClientHeight = 723
|
||||||
|
ClientWidth = 1063
|
||||||
|
Color = clGrayText
|
||||||
|
TransparentColor = True
|
||||||
|
TransparentColorValue = clFuchsia
|
||||||
|
Ctl3D = False
|
||||||
|
Font.Charset = DEFAULT_CHARSET
|
||||||
|
Font.Color = clWindowText
|
||||||
|
Font.Height = -11
|
||||||
|
Font.Name = 'MS Sans Serif'
|
||||||
|
Font.Style = []
|
||||||
|
OldCreateOrder = False
|
||||||
|
Position = poScreenCenter
|
||||||
|
OnCanResize = FormCanResize
|
||||||
|
OnClose = FormClose
|
||||||
|
OnCreate = FormCreate
|
||||||
|
PixelsPerInch = 96
|
||||||
|
TextHeight = 13
|
||||||
|
object Streetimg: TImage
|
||||||
|
Left = 0
|
||||||
|
Top = 0
|
||||||
|
Width = 1063
|
||||||
|
Height = 723
|
||||||
|
Align = alClient
|
||||||
|
end
|
||||||
|
object FORAmpel: TImage
|
||||||
|
Left = 397
|
||||||
|
Top = 26
|
||||||
|
Width = 21
|
||||||
|
Height = 27
|
||||||
|
Transparent = True
|
||||||
|
end
|
||||||
|
object FOGAmpel: TImage
|
||||||
|
Left = 397
|
||||||
|
Top = 52
|
||||||
|
Width = 21
|
||||||
|
Height = 27
|
||||||
|
Transparent = True
|
||||||
|
end
|
||||||
|
object FURAmpel: TImage
|
||||||
|
Left = 645
|
||||||
|
Top = 642
|
||||||
|
Width = 21
|
||||||
|
Height = 27
|
||||||
|
Transparent = True
|
||||||
|
end
|
||||||
|
object FUGAmpel: TImage
|
||||||
|
Left = 645
|
||||||
|
Top = 668
|
||||||
|
Width = 21
|
||||||
|
Height = 27
|
||||||
|
Transparent = True
|
||||||
|
end
|
||||||
|
object ALGAmpel: TImage
|
||||||
|
Left = 8
|
||||||
|
Top = 680
|
||||||
|
Width = 32
|
||||||
|
Height = 32
|
||||||
|
Stretch = True
|
||||||
|
Transparent = True
|
||||||
|
end
|
||||||
|
object ALYAmpel: TImage
|
||||||
|
Left = 44
|
||||||
|
Top = 680
|
||||||
|
Width = 32
|
||||||
|
Height = 32
|
||||||
|
Stretch = True
|
||||||
|
Transparent = True
|
||||||
|
end
|
||||||
|
object ALRAmpel: TImage
|
||||||
|
Left = 80
|
||||||
|
Top = 680
|
||||||
|
Width = 32
|
||||||
|
Height = 32
|
||||||
|
Stretch = True
|
||||||
|
Transparent = True
|
||||||
|
end
|
||||||
|
object ARGAmpel: TImage
|
||||||
|
Left = 1024
|
||||||
|
Top = 16
|
||||||
|
Width = 32
|
||||||
|
Height = 32
|
||||||
|
Stretch = True
|
||||||
|
Transparent = True
|
||||||
|
end
|
||||||
|
object ARYAmpel: TImage
|
||||||
|
Left = 988
|
||||||
|
Top = 16
|
||||||
|
Width = 32
|
||||||
|
Height = 32
|
||||||
|
Stretch = True
|
||||||
|
Transparent = True
|
||||||
|
end
|
||||||
|
object ARRAmpel: TImage
|
||||||
|
Left = 952
|
||||||
|
Top = 16
|
||||||
|
Width = 32
|
||||||
|
Height = 32
|
||||||
|
Stretch = True
|
||||||
|
Transparent = True
|
||||||
|
end
|
||||||
|
object FUKnopf: TButton
|
||||||
|
Left = 496
|
||||||
|
Top = 656
|
||||||
|
Width = 75
|
||||||
|
Height = 25
|
||||||
|
Cursor = crHandPoint
|
||||||
|
Hint = 'Fu'#223'g'#228'nger Knopf dr'#252'cken'
|
||||||
|
Caption = 'Fu'#223'g'#228'nger'
|
||||||
|
ParentShowHint = False
|
||||||
|
ShowHint = True
|
||||||
|
TabOrder = 0
|
||||||
|
Visible = False
|
||||||
|
OnClick = FUKnopfClick
|
||||||
|
end
|
||||||
|
object FOKnopf: TButton
|
||||||
|
Left = 496
|
||||||
|
Top = 40
|
||||||
|
Width = 75
|
||||||
|
Height = 25
|
||||||
|
Cursor = crHandPoint
|
||||||
|
Hint = 'Fu'#223'g'#228'nger Knopf dr'#252'cken'
|
||||||
|
Caption = 'Fu'#223'g'#228'nger'
|
||||||
|
ParentShowHint = False
|
||||||
|
ShowHint = True
|
||||||
|
TabOrder = 1
|
||||||
|
Visible = False
|
||||||
|
OnClick = FOKnopfClick
|
||||||
|
end
|
||||||
|
object tAutoTimer: TTimer
|
||||||
|
Enabled = False
|
||||||
|
Interval = 1
|
||||||
|
OnTimer = tAutoTimerTimer
|
||||||
|
Left = 112
|
||||||
|
Top = 120
|
||||||
|
end
|
||||||
|
object AmpelTimer: TTimer
|
||||||
|
Enabled = False
|
||||||
|
Interval = 1
|
||||||
|
OnTimer = AmpelTimerTimer
|
||||||
|
Left = 200
|
||||||
|
Top = 112
|
||||||
|
end
|
||||||
|
object tFussgaengerTimer: TTimer
|
||||||
|
Enabled = False
|
||||||
|
Interval = 1
|
||||||
|
OnTimer = tFussgaengerTimerTimer
|
||||||
|
Left = 280
|
||||||
|
Top = 136
|
||||||
|
end
|
||||||
|
end
|
||||||
162
Ampelu.pas
Normal file
@ -0,0 +1,162 @@
|
|||||||
|
unit Ampelu;
|
||||||
|
|
||||||
|
interface
|
||||||
|
|
||||||
|
uses
|
||||||
|
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
|
||||||
|
Dialogs, ExtCtrls, ImgList, vars, newclasses, StdCtrls;
|
||||||
|
|
||||||
|
type
|
||||||
|
TfAmpel = class(TForm)
|
||||||
|
Streetimg: TImage;
|
||||||
|
FORAmpel: TImage;
|
||||||
|
FOGAmpel: TImage;
|
||||||
|
FURAmpel: TImage;
|
||||||
|
FUGAmpel: TImage;
|
||||||
|
ALGAmpel: TImage;
|
||||||
|
ALYAmpel: TImage;
|
||||||
|
ALRAmpel: TImage;
|
||||||
|
ARGAmpel: TImage;
|
||||||
|
ARYAmpel: TImage;
|
||||||
|
ARRAmpel: TImage;
|
||||||
|
FUKnopf: TButton;
|
||||||
|
FOKnopf: TButton;
|
||||||
|
tAutoTimer: TTimer;
|
||||||
|
AmpelTimer: TTimer;
|
||||||
|
tFussgaengerTimer: TTimer;
|
||||||
|
procedure FormClose(Sender: TObject; var Action: TCloseAction);
|
||||||
|
procedure FormCreate(Sender: TObject);
|
||||||
|
procedure FOKnopfClick(Sender: TObject);
|
||||||
|
procedure FUKnopfClick(Sender: TObject);
|
||||||
|
procedure setProcessMessages;
|
||||||
|
procedure tAutoTimerTimer(Sender: TObject);
|
||||||
|
procedure AmpelTimerTimer(Sender: TObject);
|
||||||
|
procedure FormCanResize(Sender: TObject; var NewWidth,
|
||||||
|
NewHeight: Integer; var Resize: Boolean);
|
||||||
|
procedure tFussgaengerTimerTimer(Sender: TObject);
|
||||||
|
private
|
||||||
|
{ Private declarations }
|
||||||
|
public
|
||||||
|
{ Public declarations }
|
||||||
|
AmpelSystem:TAmpelSystem;
|
||||||
|
AutosR,AutosL:array of TAuto;
|
||||||
|
FussgaengerO, FussgaengerU:array of TFussgaenger;
|
||||||
|
AmpelPlaetzeO, AmpelPlaetzeU: array of TAmpelPlatz;
|
||||||
|
AutoTimeri:integer;
|
||||||
|
AmpelTimeri:integer;
|
||||||
|
end;
|
||||||
|
|
||||||
|
var
|
||||||
|
fAmpel: TfAmpel;
|
||||||
|
|
||||||
|
implementation
|
||||||
|
|
||||||
|
{$R *.dfm}
|
||||||
|
|
||||||
|
uses functions;
|
||||||
|
|
||||||
|
procedure TfAmpel.setProcessMessages;
|
||||||
|
begin
|
||||||
|
|
||||||
|
Application.ProcessMessages;
|
||||||
|
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TfAmpel.FormClose(Sender: TObject; var Action: TCloseAction);
|
||||||
|
begin
|
||||||
|
|
||||||
|
ProgrammBeenden;
|
||||||
|
Application.Terminate;
|
||||||
|
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TfAmpel.FormCreate(Sender: TObject);
|
||||||
|
begin
|
||||||
|
|
||||||
|
setAndCreateStandarts;
|
||||||
|
bindImagesToAmpelSystem;
|
||||||
|
setImagesToForm;
|
||||||
|
setAutosReadyToStart;
|
||||||
|
setFussgaengerReadyToStart;
|
||||||
|
setAmpelPlaetzeReadyToStart;
|
||||||
|
fAmpel.AmpelSystem.setFRot;
|
||||||
|
fAmpel.AmpelSystem.setAGruen;
|
||||||
|
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TfAmpel.FOKnopfClick(Sender: TObject);
|
||||||
|
begin
|
||||||
|
|
||||||
|
FussgaengerKnopf;
|
||||||
|
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TfAmpel.FUKnopfClick(Sender: TObject);
|
||||||
|
begin
|
||||||
|
|
||||||
|
FussgaengerKnopf;
|
||||||
|
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TfAmpel.tAutoTimerTimer(Sender: TObject);
|
||||||
|
begin
|
||||||
|
|
||||||
|
AutoTimeri:=fAmpel.AutoTimeri+1;
|
||||||
|
AutoTimerR;
|
||||||
|
AutoTimerL;
|
||||||
|
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TfAmpel.AmpelTimerTimer(Sender: TObject);
|
||||||
|
var i:integer;
|
||||||
|
begin
|
||||||
|
|
||||||
|
AmpelTimeri:=AmpelTimeri+1;
|
||||||
|
|
||||||
|
//FussgaengertimerO;
|
||||||
|
|
||||||
|
{ for i:=0 to AnzahlDerFussgaengerO-1 do
|
||||||
|
begin
|
||||||
|
if (FAmpel.AmpelSystem.FUAmpel.State) and (fAmpel.FussgaengerO[i].active=true) then
|
||||||
|
begin
|
||||||
|
fAmpel.FussgaengerO[i].Image.Top:=fAmpel.FussgaengerO[i].Image.Top+10;
|
||||||
|
if fAmpel.FussgaengerO[i].AngesteuerterAmpelPlatz<>-1 then
|
||||||
|
begin
|
||||||
|
fAmpel.AmpelPlaetzeO[fAmpel.FussgaengerO[i].AngesteuerterAmpelPlatz].Besetzt:=false;
|
||||||
|
fAmpel.FussgaengerO[i].AngesteuerterAmpelPlatz:=-1;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
if FAmpel.FussgaengerO[i].Image.top>FAmpel.Height+100 then fAmpel.FussgaengerO[i].Active:=false;
|
||||||
|
end;}
|
||||||
|
|
||||||
|
if AmpelTimeri=30 then AmpelSystem.setAGelb;
|
||||||
|
if AmpelTimeri=60 then AmpelSystem.setARot;
|
||||||
|
if AmpelTimeri=100 then AmpelSystem.setFGruen;
|
||||||
|
if AmpelTimeri=300 then AmpelSystem.setFRot;
|
||||||
|
if AmpelTimeri=340 then AmpelSystem.setARotGelb;
|
||||||
|
if AmpelTimeri=380 then AmpelSystem.setAGruen;
|
||||||
|
if AmpelTimeri>380 then
|
||||||
|
begin
|
||||||
|
AmpelTimeri:=0;
|
||||||
|
fAmpel.AmpelSystem.Changing:=false;
|
||||||
|
AmpelTimer.Enabled:=false;
|
||||||
|
end;
|
||||||
|
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TfAmpel.FormCanResize(Sender: TObject; var NewWidth,
|
||||||
|
NewHeight: Integer; var Resize: Boolean);
|
||||||
|
begin
|
||||||
|
|
||||||
|
resize:=false;
|
||||||
|
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TfAmpel.tFussgaengerTimerTimer(Sender: TObject);
|
||||||
|
begin
|
||||||
|
|
||||||
|
FussgaengertimerO;
|
||||||
|
|
||||||
|
end;
|
||||||
|
|
||||||
|
end.
|
||||||
BIN
Images/AAGelb.bmp
Normal file
|
After Width: | Height: | Size: 4.0 KiB |
BIN
Images/AAGruen.bmp
Normal file
|
After Width: | Height: | Size: 4.0 KiB |
BIN
Images/AARot.bmp
Normal file
|
After Width: | Height: | Size: 4.0 KiB |
BIN
Images/AutoBlauL.bmp
Normal file
|
After Width: | Height: | Size: 48 KiB |
BIN
Images/AutoBlauR.bmp
Normal file
|
After Width: | Height: | Size: 48 KiB |
BIN
Images/AutoGelbL.bmp
Normal file
|
After Width: | Height: | Size: 48 KiB |
BIN
Images/AutoGelbR.bmp
Normal file
|
After Width: | Height: | Size: 48 KiB |
BIN
Images/AutoGruenL.bmp
Normal file
|
After Width: | Height: | Size: 48 KiB |
BIN
Images/AutoGruenR.bmp
Normal file
|
After Width: | Height: | Size: 48 KiB |
BIN
Images/AutoRotL.bmp
Normal file
|
After Width: | Height: | Size: 48 KiB |
BIN
Images/AutoRotR.bmp
Normal file
|
After Width: | Height: | Size: 48 KiB |
BIN
Images/FAGruen.bmp
Normal file
|
After Width: | Height: | Size: 1.7 KiB |
BIN
Images/FARot.bmp
Normal file
|
After Width: | Height: | Size: 1.7 KiB |
BIN
Images/Street.bmp
Normal file
|
After Width: | Height: | Size: 2.2 MiB |
BIN
Images/der mann der alles kann.bmp
Normal file
|
After Width: | Height: | Size: 7.5 KiB |
2196
Optionsu.dfm
Normal file
81
Optionsu.pas
Normal file
@ -0,0 +1,81 @@
|
|||||||
|
unit Optionsu;
|
||||||
|
|
||||||
|
interface
|
||||||
|
|
||||||
|
uses
|
||||||
|
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
|
||||||
|
Dialogs, StdCtrls, ExtCtrls, jpeg;
|
||||||
|
|
||||||
|
type
|
||||||
|
TfOptions = class(TForm)
|
||||||
|
GroupBox1: TGroupBox;
|
||||||
|
CheckBox3: TCheckBox;
|
||||||
|
CheckBox2: TCheckBox;
|
||||||
|
CheckBox1: TCheckBox;
|
||||||
|
Button1: TButton;
|
||||||
|
Button2: TButton;
|
||||||
|
Werbung: TImage;
|
||||||
|
procedure FormClose(Sender: TObject; var Action: TCloseAction);
|
||||||
|
procedure Button2Click(Sender: TObject);
|
||||||
|
procedure CheckBox3MouseUp(Sender: TObject; Button: TMouseButton;
|
||||||
|
Shift: TShiftState; X, Y: Integer);
|
||||||
|
procedure CheckBox2MouseUp(Sender: TObject; Button: TMouseButton;
|
||||||
|
Shift: TShiftState; X, Y: Integer);
|
||||||
|
procedure Button1Click(Sender: TObject);
|
||||||
|
private
|
||||||
|
{ Private declarations }
|
||||||
|
public
|
||||||
|
{ Public declarations }
|
||||||
|
end;
|
||||||
|
|
||||||
|
var
|
||||||
|
fOptions: TfOptions;
|
||||||
|
|
||||||
|
implementation
|
||||||
|
|
||||||
|
{$R *.dfm}
|
||||||
|
|
||||||
|
uses functions;
|
||||||
|
|
||||||
|
procedure TfOptions.FormClose(Sender: TObject; var Action: TCloseAction);
|
||||||
|
begin
|
||||||
|
|
||||||
|
Application.Terminate;
|
||||||
|
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TfOptions.Button2Click(Sender: TObject);
|
||||||
|
begin
|
||||||
|
|
||||||
|
ProgrammBeenden;
|
||||||
|
Application.Terminate;
|
||||||
|
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TfOptions.CheckBox3MouseUp(Sender: TObject; Button: TMouseButton;
|
||||||
|
Shift: TShiftState; X, Y: Integer);
|
||||||
|
begin
|
||||||
|
|
||||||
|
if checkbox3.Checked then checkbox2.Checked:=false else checkbox2.Checked:=true;
|
||||||
|
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TfOptions.CheckBox2MouseUp(Sender: TObject; Button: TMouseButton;
|
||||||
|
Shift: TShiftState; X, Y: Integer);
|
||||||
|
begin
|
||||||
|
|
||||||
|
if checkbox2.Checked then checkbox3.Checked:=false else checkbox3.Checked:=true;
|
||||||
|
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TfOptions.Button1Click(Sender: TObject);
|
||||||
|
var tempb:boolean;
|
||||||
|
begin
|
||||||
|
|
||||||
|
if checkbox2.Checked then tempb:=true else tempb:=false;
|
||||||
|
|
||||||
|
setOptions(checkbox1.Checked,tempb);
|
||||||
|
|
||||||
|
end;
|
||||||
|
|
||||||
|
end.
|
||||||
BIN
Org Bilder/68622_normal.jpg
Normal file
|
After Width: | Height: | Size: 9.6 KiB |
BIN
Org Bilder/AAGelb.JPG
Normal file
|
After Width: | Height: | Size: 999 B |
BIN
Org Bilder/AAGelb.bmp
Normal file
|
After Width: | Height: | Size: 3.5 KiB |
BIN
Org Bilder/AAGruen.JPG
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
Org Bilder/AAGruen.bmp
Normal file
|
After Width: | Height: | Size: 4.0 KiB |
BIN
Org Bilder/AARot.JPG
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
Org Bilder/AARot.bmp
Normal file
|
After Width: | Height: | Size: 3.4 KiB |
BIN
Org Bilder/AMGruen.bmp
Normal file
|
After Width: | Height: | Size: 121 KiB |
BIN
Org Bilder/AMRot.bmp
Normal file
|
After Width: | Height: | Size: 126 KiB |
BIN
Org Bilder/Ampel_2.jpg
Normal file
|
After Width: | Height: | Size: 23 KiB |
BIN
Org Bilder/Ampel_x.JPG
Normal file
|
After Width: | Height: | Size: 2.7 KiB |
BIN
Org Bilder/Ampelmaennchen.bmp
Normal file
|
After Width: | Height: | Size: 251 KiB |
BIN
Org Bilder/Auge_Blue_small.bmp
Normal file
|
After Width: | Height: | Size: 66 KiB |
BIN
Org Bilder/Auto.JPG
Normal file
|
After Width: | Height: | Size: 10 KiB |
BIN
Org Bilder/Auto.bmp
Normal file
|
After Width: | Height: | Size: 48 KiB |
BIN
Org Bilder/Ladescreen.bmp
Normal file
|
After Width: | Height: | Size: 66 KiB |
BIN
Org Bilder/LeereAmpel.bmp
Normal file
|
After Width: | Height: | Size: 4.0 KiB |
BIN
Org Bilder/Rylon2.jpg
Normal file
|
After Width: | Height: | Size: 38 KiB |
BIN
Org Bilder/Werbung.bmp
Normal file
|
After Width: | Height: | Size: 66 KiB |
BIN
Org Bilder/Yeminy-heroisch.bmp
Normal file
|
After Width: | Height: | Size: 441 KiB |
BIN
Org Bilder/caratt_draw_01.jpg
Normal file
|
After Width: | Height: | Size: 7.9 KiB |
BIN
Org Bilder/online.bmp
Normal file
|
After Width: | Height: | Size: 66 KiB |
BIN
Org Bilder/tn_Ampel_A.jpg
Normal file
|
After Width: | Height: | Size: 5.2 KiB |
BIN
Org Bilder/tn_Ampel_B.jpg
Normal file
|
After Width: | Height: | Size: 5.0 KiB |
BIN
Org Bilder/tn_Ampel_C.jpg
Normal file
|
After Width: | Height: | Size: 7.1 KiB |
BIN
Org Bilder/tn_Fussgaengerampel.jpg
Normal file
|
After Width: | Height: | Size: 6.0 KiB |
14149
Splashu.dfm
Normal file
40
Splashu.pas
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
unit Splashu;
|
||||||
|
|
||||||
|
interface
|
||||||
|
|
||||||
|
uses
|
||||||
|
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
|
||||||
|
Dialogs, ExtCtrls;
|
||||||
|
|
||||||
|
type
|
||||||
|
TfSplash = class(TForm)
|
||||||
|
Image1: TImage;
|
||||||
|
procedure FormActivate(Sender: TObject);
|
||||||
|
private
|
||||||
|
{ Private declarations }
|
||||||
|
public
|
||||||
|
{ Public declarations }
|
||||||
|
end;
|
||||||
|
|
||||||
|
var
|
||||||
|
fSplash: TfSplash;
|
||||||
|
|
||||||
|
implementation
|
||||||
|
|
||||||
|
uses Optionsu,functions;
|
||||||
|
|
||||||
|
{$R *.dfm}
|
||||||
|
|
||||||
|
procedure TfSplash.FormActivate(Sender: TObject);
|
||||||
|
begin
|
||||||
|
|
||||||
|
Application.ProcessMessages;
|
||||||
|
|
||||||
|
sleep(3000);
|
||||||
|
|
||||||
|
fOptions.show;
|
||||||
|
fSplash.Hide;
|
||||||
|
|
||||||
|
end;
|
||||||
|
|
||||||
|
end.
|
||||||
590
functions.pas
Normal file
@ -0,0 +1,590 @@
|
|||||||
|
unit functions;
|
||||||
|
|
||||||
|
interface
|
||||||
|
|
||||||
|
uses ampelu, splashu, optionsu, newclasses, vars, Windows, extctrls,dialogs,sysutils;
|
||||||
|
|
||||||
|
procedure setOptions(Autos,Fussgaenger:boolean);
|
||||||
|
procedure setAndCreateStandarts;
|
||||||
|
procedure bindImagesToAmpelSystem;
|
||||||
|
procedure setImagesToForm;
|
||||||
|
procedure FussgaengerKnopf;
|
||||||
|
procedure ProgrammBeenden;
|
||||||
|
procedure setAutosReadyToStart;
|
||||||
|
procedure stopAutoTimer;
|
||||||
|
procedure StartAutoTimer;
|
||||||
|
procedure AutoTimerR;
|
||||||
|
procedure AutoTimerL;
|
||||||
|
procedure setFussgaengerReadyToStart;
|
||||||
|
procedure FussgaengertimerO;
|
||||||
|
procedure setAmpelPlaetzeReadyToStart;
|
||||||
|
|
||||||
|
implementation
|
||||||
|
|
||||||
|
procedure FussgaengertimerO;
|
||||||
|
var i,j:integer;
|
||||||
|
begin
|
||||||
|
|
||||||
|
for i:=0 to AnzahlDerFussgaengerO-1 do
|
||||||
|
begin
|
||||||
|
|
||||||
|
if (random(3)=0) and (fAmpel.FussgaengerO[i].Active=false) then
|
||||||
|
begin
|
||||||
|
j:=0;
|
||||||
|
repeat
|
||||||
|
if (fAmpel.FussgaengerO[i].Active=false) and (fAmpel.AmpelPlaetzeO[j].Besetzt=false) then
|
||||||
|
begin
|
||||||
|
fAmpel.AmpelPlaetzeO[j].Besetzt:=true;
|
||||||
|
fAmpel.FussgaengerO[i].Active:=true;
|
||||||
|
fAmpel.FussgaengerO[i].AngesteuerterAmpelPlatz:=j;
|
||||||
|
fAmpel.FussgaengerO[i].Image.Top:=-40;
|
||||||
|
fAmpel.FussgaengerO[i].Image.Left:=random(fAmpel.Width);
|
||||||
|
fAmpel.FussgaengerO[i].momSpeedx:=(fAmpel.AmpelPlaetzeO[j].X-fAmpel.FussgaengerO[i].Image.Left) div fAmpel.FussgaengerO[i].Speed;
|
||||||
|
fAmpel.FussgaengerO[i].momSpeedy:=(fAmpel.AmpelPlaetzeO[j].Y-fAmpel.FussgaengerO[i].Image.Top) div fAmpel.FussgaengerO[i].Speed;
|
||||||
|
end;
|
||||||
|
inc(j);
|
||||||
|
until j>=AnzahlDerAmpelPlaetzeO;
|
||||||
|
end;
|
||||||
|
|
||||||
|
if (fAmpel.FussgaengerO[i].Active=true) and (fAmpel.FussgaengerO[i].AngesteuerterAmpelPlatz<>-1) then
|
||||||
|
begin
|
||||||
|
if (fAmpel.FussgaengerO[i].Image.left<fAmpel.AmpelPlaetzeO[fAmpel.FussgaengerO[i].AngesteuerterAmpelPlatz].X-5) or (fAmpel.FussgaengerO[i].Image.left>fAmpel.AmpelPlaetzeO[fAmpel.FussgaengerO[i].AngesteuerterAmpelPlatz].X+5) then
|
||||||
|
begin
|
||||||
|
if (fAmpel.FussgaengerO[i].Image.Top<fAmpel.AmpelPlaetzeO[fAmpel.FussgaengerO[i].AngesteuerterAmpelPlatz].Y-5) or (fAmpel.FussgaengerO[i].Image.Top>fAmpel.AmpelPlaetzeO[fAmpel.FussgaengerO[i].AngesteuerterAmpelPlatz].Y+5) then
|
||||||
|
begin
|
||||||
|
fAmpel.FussgaengerO[i].Image.Top:=fAmpel.FussgaengerO[i].Image.Top+fAmpel.FussgaengerO[i].momSpeedy;
|
||||||
|
fAmpel.FussgaengerO[i].Image.Left:=fAmpel.FussgaengerO[i].Image.Left+fAmpel.FussgaengerO[i].momSpeedx;
|
||||||
|
end else
|
||||||
|
begin
|
||||||
|
if fAmpel.AmpelSystem.FUAmpel.State=false then
|
||||||
|
begin
|
||||||
|
fAmpel.FussgaengerO[i].Image.Left:=fAmpel.AmpelPlaetzeO[fAmpel.FussgaengerO[i].AngesteuerterAmpelPlatz].X;
|
||||||
|
fAmpel.FussgaengerO[i].Image.Top:=fAmpel.AmpelPlaetzeO[fAmpel.FussgaengerO[i].AngesteuerterAmpelPlatz].Y;
|
||||||
|
if fAmpel.AmpelSystem.Changing=false then
|
||||||
|
begin
|
||||||
|
fussgaengerknopf;
|
||||||
|
fAmpel.FussgaengerO[i].AufStrasse:=true;
|
||||||
|
end
|
||||||
|
end else
|
||||||
|
begin
|
||||||
|
fAmpel.FussgaengerO[i].Image.Top:=fAmpel.FussgaengerO[i].Image.Top+10;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
if (FAmpel.AmpelSystem.FUAmpel.State) and (fAmpel.FussgaengerO[i].active=true) and (fAmpel.FussgaengerO[i].AufStrasse=true) then
|
||||||
|
begin
|
||||||
|
fAmpel.FussgaengerO[i].Image.Top:=fAmpel.FussgaengerO[i].Image.Top+fAmpel.FussgaengerO[i].Speed div 5+3;
|
||||||
|
if fAmpel.FussgaengerO[i].AngesteuerterAmpelPlatz<>-1 then
|
||||||
|
begin
|
||||||
|
fAmpel.AmpelPlaetzeO[fAmpel.FussgaengerO[i].AngesteuerterAmpelPlatz].Besetzt:=false;
|
||||||
|
fAmpel.FussgaengerO[i].AngesteuerterAmpelPlatz:=-1;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
if (FAmpel.FussgaengerO[i].Image.top>FAmpel.Height+100) and (fAmpel.FussgaengerO[i].active=true) and (fAmpel.FussgaengerO[i].AngesteuerterAmpelPlatz=-1) then fAmpel.FussgaengerO[i].Active:=false else
|
||||||
|
begin
|
||||||
|
fAmpel.FussgaengerO[i].Active:=false;
|
||||||
|
fAmpel.FussgaengerO[i].AufStrasse:=false;
|
||||||
|
end;
|
||||||
|
|
||||||
|
end;
|
||||||
|
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure StopAutoTimer;
|
||||||
|
begin
|
||||||
|
|
||||||
|
fAmpel.tAutoTimer.Enabled:=false;
|
||||||
|
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure StartAutoTimer;
|
||||||
|
begin
|
||||||
|
|
||||||
|
fAmpel.tAutoTimer.Enabled:=true;
|
||||||
|
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure ProgrammBeenden;
|
||||||
|
var i:integer;
|
||||||
|
begin
|
||||||
|
|
||||||
|
stopAutoTimer;
|
||||||
|
|
||||||
|
fAmpel.AmpelSystem.Free;
|
||||||
|
|
||||||
|
for i:=0 to AnzahlDerAutosR-1 do fAmpel.AutosR[i].Free;
|
||||||
|
for i:=0 to AnzahlDerAutosL-1 do fAmpel.AutosL[i].Free;
|
||||||
|
for i:=0 to AnzahlDerFussgaengerO-1 do fAmpel.FussgaengerO[i].Free;
|
||||||
|
for i:=0 to AnzahlDerFussgaengerU-1 do fAmpel.FussgaengerU[i].Free;
|
||||||
|
for i:=0 to AnzahlDerAmpelPlaetzeO-1 do fAmpel.AmpelPlaetzeO[i].Free;
|
||||||
|
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure setAndCreateStandarts;
|
||||||
|
var i:integer;
|
||||||
|
begin
|
||||||
|
|
||||||
|
randomize;
|
||||||
|
|
||||||
|
fAmpel.AutoTimeri:=0;
|
||||||
|
fAmpel.AmpelTimeri:=0;
|
||||||
|
|
||||||
|
fAmpel.AmpelSystem:=TAmpelsystem.create;
|
||||||
|
|
||||||
|
fAmpel.DoubleBuffered:=true;
|
||||||
|
|
||||||
|
setlength(fAmpel.AutosR,AnzahlDerAutosR);
|
||||||
|
for i:=0 to AnzahlDerAutosR-1 do fAmpel.AutosR[i]:=TAuto.Create;
|
||||||
|
|
||||||
|
setlength(fAmpel.AutosL,AnzahlDerAutosL);
|
||||||
|
for i:=0 to AnzahlDerAutosL-1 do fAmpel.AutosL[i]:=TAuto.Create;
|
||||||
|
|
||||||
|
setlength(fAmpel.FussgaengerO,AnzahlDerFussgaengerO);
|
||||||
|
for i:=0 to AnzahlDerFussgaengerO-1 do fAmpel.FussgaengerO[i]:=TFussgaenger.create;
|
||||||
|
|
||||||
|
setlength(fAmpel.FussgaengerU,AnzahlDerFussgaengerU);
|
||||||
|
for i:=0 to AnzahlDerFussgaengerU-1 do fAmpel.FussgaengerU[i]:=TFussgaenger.create;
|
||||||
|
|
||||||
|
setlength(fAmpel.AmpelPlaetzeO,AnzahlDerAmpelPlaetzeO);
|
||||||
|
for i:=0 to AnzahlDerAmpelPlaetzeO-1 do fAmpel.AmpelPlaetzeO[i]:=TAmpelPlatz.create;
|
||||||
|
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure AutoTimerR;
|
||||||
|
var i,j:integer;
|
||||||
|
tempb:boolean;
|
||||||
|
begin
|
||||||
|
|
||||||
|
for i:=0 to AnzahlDerAutosR-1 do
|
||||||
|
begin
|
||||||
|
|
||||||
|
{ if (fAmpel.AutosR[i].momSpeed<>0) and (fAmpel.AutosR[i].momSpeed<>fAmpel.AutosR[i].Speed) and (fAmpel.AutosR[i].Fahrbahn=1) then
|
||||||
|
begin
|
||||||
|
fAmpel.AutosR[i].BlinkerL:=true;
|
||||||
|
fAmpel.AutosR[i].BlinkerR:=false;
|
||||||
|
//fAmpel.AutosR[i].Image.picture.loadfromfiel(...);
|
||||||
|
end;}
|
||||||
|
|
||||||
|
if fAmpel.Autotimeri>=i*50 then fAmpel.AutosR[i].Active:=true;
|
||||||
|
|
||||||
|
if (fAmpel.AutosR[i].Image.Left<=-1700) and (fAmpel.AutosR[i].Fahrbahn=2) then fAmpel.AutosR[i].Image.Left:=fAmpel.Width+1500+random(500);
|
||||||
|
if (fAmpel.AutosR[i].Image.Left<=-1000) and (fAmpel.AutosR[i].Fahrbahn=1) then fAmpel.AutosR[i].Image.Left:=fAmpel.Width+200+random(1200);
|
||||||
|
|
||||||
|
if (fAmpel.AmpelSystem.ARAmpel.State>0) and (fAmpel.AutosR[i].Image.left>=680) and (fAmpel.AutosR[i].Image.left<=700) then fAmpel.AutosR[i].momSpeed:=0;
|
||||||
|
if (fAmpel.AmpelSystem.ARAmpel.State=0) and (fAmpel.AutosR[i].momSpeed=0) then fAmpel.AutosR[i].momSpeed:=fAmpel.AutosR[i].speed;
|
||||||
|
|
||||||
|
if fAmpel.AutosR[i].momSpeed<>0 then
|
||||||
|
begin
|
||||||
|
if (fAmpel.AutosR[i].Image.left<=fAmpel.width+100) and (fAmpel.AutosR[i].image.left>=-300) then
|
||||||
|
begin
|
||||||
|
for j:=0 to AnzahlDerAutosR-1 do
|
||||||
|
begin
|
||||||
|
if (fAmpel.AutosR[i].Image.left<=fAmpel.AutosR[j].Image.Left+fAmpel.AutosR[j].Image.Width+10) and (fAmpel.AutosR[i].Image.left>=fAmpel.AutosR[j].Image.Left-10) and (i<>j) then
|
||||||
|
begin
|
||||||
|
if (fAmpel.AutosR[j].Fahrbahn=fAmpel.AutosR[i].Fahrbahn){ or (fAmpel.AutosR[j].Fahrbahn=3) }then
|
||||||
|
begin
|
||||||
|
fAmpel.AutosR[i].Speed:=fAmpel.AutosR[j].Speed;
|
||||||
|
if (fAmpel.AutosR[i].image.Left<=fAmpel.AutosR[j].image.Left+fAmpel.AutosR[j].image.Width) and (fAmpel.AutosR[i].image.Left>=fAmpel.AutosR[j].image.Left) then fAmpel.AutosR[i].image.Left:=fAmpel.AutosR[j].image.Left+fAmpel.AutosR[j].image.Width+10;
|
||||||
|
end;
|
||||||
|
end else
|
||||||
|
begin
|
||||||
|
if (fAmpel.AutosR[j].Fahrbahn=fAmpel.AutosR[i].Fahrbahn) or (fAmpel.AutosR[j].Fahrbahn=3) then
|
||||||
|
begin
|
||||||
|
if fAmpel.AutosR[i].Image.left>=fAmpel.AutosR[j].Image.Left+fAmpel.AutosR[j].Image.Width+10+fAmpel.AutosR[i].Speed then fAmpel.AutosR[i].momSpeed:=fAmpel.AutosR[i].Speed;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end else fAmpel.AutosR[i].momSpeed:=fAmpel.AutosR[i].Speed;
|
||||||
|
end else
|
||||||
|
begin
|
||||||
|
for j:=0 to AnzahlDerAutosR-1 do
|
||||||
|
begin
|
||||||
|
if (fAmpel.AutosR[j].Image.left<=fAmpel.AutosR[i].Image.Left+fAmpel.AutosR[i].Image.Width+10) and (fAmpel.AutosR[j].Image.left>=fAmpel.AutosR[i].Image.Left) and (fAmpel.AutosR[j].Fahrbahn=fAmpel.AutosR[i].Fahrbahn) and (i<>j) then fAmpel.AutosR[j].momSpeed:=0;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
{ tempb:=false;
|
||||||
|
for j:=0 to AnzahlDerAutosR-1 do
|
||||||
|
begin
|
||||||
|
if (j<>i) then
|
||||||
|
begin
|
||||||
|
if (fAmpel.AutosR[i].BlinkerL) then
|
||||||
|
begin
|
||||||
|
if (fAmpel.AutosR[j].Fahrbahn=2) then
|
||||||
|
begin
|
||||||
|
if(fAmpel.AutosR[i].Image.Left>fAmpel.AutosR[j].Image.Left+fAmpel.AutosR[j].Image.width*1.5) then
|
||||||
|
begin
|
||||||
|
if(fAmpel.AutosR[i].Image.Left+fAmpel.AutosR[i].Image.Width<fAmpel.AutosR[j].Image.Left) then tempb:=true else tempb:=false;
|
||||||
|
end else tempb:=false;
|
||||||
|
end else tempb:=true;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end; }
|
||||||
|
|
||||||
|
{for j:=0 to AnzahlDerAutosR-1 do
|
||||||
|
begin
|
||||||
|
if (j<>i) then
|
||||||
|
begin
|
||||||
|
if (fAmpel.AutosR[i].BlinkerR) then
|
||||||
|
begin
|
||||||
|
if (fAmpel.AutosR[j].Fahrbahn=1) then
|
||||||
|
begin
|
||||||
|
if(fAmpel.AutosR[i].Image.Left>fAmpel.AutosR[j].Image.Left+fAmpel.AutosR[j].Image.width*1.5) then
|
||||||
|
begin
|
||||||
|
if(fAmpel.AutosR[i].Image.Left+fAmpel.AutosR[i].Image.Width<fAmpel.AutosR[j].Image.Left) then tempb:=true else tempb:=false;
|
||||||
|
end else tempb:=false;
|
||||||
|
end else tempb:=true;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;}
|
||||||
|
|
||||||
|
{ if tempb then
|
||||||
|
begin
|
||||||
|
fAmpel.AutosR[i].fahrbahn:=3;
|
||||||
|
fAmpel.AutosR[i].momSpeed:=fAmpel.AutosR[i].Speed+7;
|
||||||
|
end;}
|
||||||
|
|
||||||
|
{ if (fAmpel.AutosR[i].image.Top>=FahrbahnR2) and (fAmpel.AutosR[i].Fahrbahn=3) and (fAmpel.AutosR[i].BlinkerL) then
|
||||||
|
begin
|
||||||
|
fAmpel.AutosR[i].Fahrbahn:=2;
|
||||||
|
fAmpel.AutosR[i].momSpeed:=fAmpel.AutosR[i].Speed+7;
|
||||||
|
fAmpel.AutosR[i].Image.Top:=FahrbahnR2;
|
||||||
|
fAmpel.AutosR[i].BlinkerR:=true;
|
||||||
|
fAmpel.AutosR[i].BlinkerL:=false;
|
||||||
|
end;}
|
||||||
|
|
||||||
|
{ if (fAmpel.AutosR[i].image.Top<=FahrbahnR1) and (fAmpel.AutosR[i].Fahrbahn=3) and (fAmpel.AutosR[i].BlinkerR) then
|
||||||
|
begin
|
||||||
|
fAmpel.AutosR[i].Fahrbahn:=1;
|
||||||
|
fAmpel.AutosR[i].momSpeed:=fAmpel.AutosR[i].Speed;
|
||||||
|
fAmpel.AutosR[i].Image.Top:=FahrbahnR1;
|
||||||
|
fAmpel.AutosR[i].BlinkerR:=false;
|
||||||
|
fAmpel.AutosR[i].BlinkerL:=false;
|
||||||
|
end;}
|
||||||
|
|
||||||
|
{ if fAmpel.AutosR[i].Fahrbahn=3 then
|
||||||
|
begin
|
||||||
|
if fAmpel.AutosR[i].BlinkerL then fAmpel.AutosR[i].image.Top:=fAmpel.AutosR[i].image.Top+7;
|
||||||
|
if fAmpel.AutosR[i].BlinkerR then fAmpel.AutosR[i].image.Top:=fAmpel.AutosR[i].image.Top-5;
|
||||||
|
end;}
|
||||||
|
|
||||||
|
if fAmpel.AutosR[i].Active then fAmpel.AutosR[i].Image.Left:=fAmpel.AutosR[i].Image.Left-fAmpel.AutosR[i].momSpeed;
|
||||||
|
|
||||||
|
end;
|
||||||
|
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure AutoTimerL;
|
||||||
|
var i,j:integer;
|
||||||
|
tempb:boolean;
|
||||||
|
begin
|
||||||
|
|
||||||
|
for i:=0 to AnzahlDerAutosL-1 do
|
||||||
|
begin
|
||||||
|
|
||||||
|
{ if (fAmpel.AutosL[i].momSpeed<>0) and (fAmpel.AutosL[i].momSpeed<>fAmpel.AutosL[i].Speed) and (fAmpel.AutosL[i].Fahrbahn=1) then
|
||||||
|
begin
|
||||||
|
fAmpel.AutosL[i].BlinkerL:=true;
|
||||||
|
fAmpel.AutosL[i].BlinkerR:=false;
|
||||||
|
//fAmpel.AutosL[i].Image.picture.loadfromfiel(...);
|
||||||
|
end;}
|
||||||
|
|
||||||
|
if fAmpel.Autotimeri>=i*50 then fAmpel.AutosL[i].Active:=true;
|
||||||
|
|
||||||
|
if (fAmpel.AutosL[i].Image.Left>=FAmpel.Width+1500) and (fAmpel.AutosL[i].Fahrbahn=2) then fAmpel.AutosL[i].Image.Left:=-1700-random(500)-fAmpel.AutosL[i].Image.Width;
|
||||||
|
if (fAmpel.AutosL[i].Image.Left>=FAmpel.Width+200) and (fAmpel.AutosL[i].Fahrbahn=1) then fAmpel.AutosL[i].Image.Left:=-1000-random(1200)-fAmpel.AutosL[i].Image.Width;
|
||||||
|
|
||||||
|
if (fAmpel.AmpelSystem.ALAmpel.State>0) and (fAmpel.AutosL[i].Image.left>=148) and (fAmpel.AutosL[i].Image.left<=158) then fAmpel.AutosL[i].momSpeed:=0;
|
||||||
|
if (fAmpel.AmpelSystem.ALAmpel.State=0) and (fAmpel.AutosL[i].momSpeed=0) then fAmpel.AutosL[i].momSpeed:=fAmpel.AutosL[i].speed;
|
||||||
|
|
||||||
|
if fAmpel.AutosL[i].momSpeed<>0 then
|
||||||
|
begin
|
||||||
|
if (fAmpel.AutosL[i].Image.left<=fAmpel.width+100) and (fAmpel.AutosL[i].image.left>=-300) then
|
||||||
|
begin
|
||||||
|
for j:=0 to AnzahlDerAutosL-1 do
|
||||||
|
begin
|
||||||
|
if (fAmpel.AutosL[i].Image.left+fAmpel.AutosL[i].Image.Width+10>=fAmpel.AutosL[j].Image.Left) and (fAmpel.AutosL[i].Image.left<=fAmpel.AutosL[j].Image.Left+10) and (i<>j) then
|
||||||
|
begin
|
||||||
|
if (fAmpel.AutosL[j].Fahrbahn=fAmpel.AutosL[i].Fahrbahn){ or (fAmpel.AutosL[j].Fahrbahn=3) }then
|
||||||
|
begin
|
||||||
|
fAmpel.AutosL[i].Speed:=fAmpel.AutosL[j].Speed;
|
||||||
|
if (fAmpel.AutosL[i].image.Left+fAmpel.AutosL[i].image.Width>=fAmpel.AutosL[j].image.Left) and (fAmpel.AutosL[i].image.Left<=fAmpel.AutosL[j].image.Left) then fAmpel.AutosL[i].image.Left:=fAmpel.AutosL[j].image.Left-fAmpel.AutosL[i].image.Width-10;
|
||||||
|
end;
|
||||||
|
end else
|
||||||
|
begin
|
||||||
|
if (fAmpel.AutosL[j].Fahrbahn=fAmpel.AutosL[i].Fahrbahn) or (fAmpel.AutosL[j].Fahrbahn=3) then
|
||||||
|
begin
|
||||||
|
if fAmpel.AutosL[i].Image.left+fAmpel.AutosL[i].Image.Width+10+fAmpel.AutosL[i].Speed<=fAmpel.AutosL[j].Image.Left then fAmpel.AutosL[i].momSpeed:=fAmpel.AutosL[i].Speed;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end else fAmpel.AutosL[i].momSpeed:=fAmpel.AutosL[i].Speed;
|
||||||
|
end else
|
||||||
|
begin
|
||||||
|
for j:=0 to AnzahlDerAutosR-1 do
|
||||||
|
begin
|
||||||
|
if (fAmpel.AutosL[j].Image.left+fAmpel.AutosL[i].Image.Width+10>=fAmpel.AutosL[i].Image.Left) and (fAmpel.AutosL[j].Image.left<=fAmpel.AutosL[i].Image.Left) and (fAmpel.AutosL[j].Fahrbahn=fAmpel.AutosL[i].Fahrbahn) and (i<>j) then fAmpel.AutosL[j].momSpeed:=0;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
{ tempb:=false;
|
||||||
|
for j:=0 to AnzahlDerAutosR-1 do
|
||||||
|
begin
|
||||||
|
if (j<>i) then
|
||||||
|
begin
|
||||||
|
if (fAmpel.AutosL[i].BlinkerL) then
|
||||||
|
begin
|
||||||
|
if (fAmpel.AutosL[j].Fahrbahn=2) then
|
||||||
|
begin
|
||||||
|
if(fAmpel.AutosL[i].Image.Left>fAmpel.AutosL[j].Image.Left+fAmpel.AutosL[j].Image.width*1.5) then
|
||||||
|
begin
|
||||||
|
if(fAmpel.AutosL[i].Image.Left+fAmpel.AutosL[i].Image.Width<fAmpel.AutosL[j].Image.Left) then tempb:=true else tempb:=false;
|
||||||
|
end else tempb:=false;
|
||||||
|
end else tempb:=true;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end; }
|
||||||
|
|
||||||
|
{for j:=0 to AnzahlDerAutosR-1 do
|
||||||
|
begin
|
||||||
|
if (j<>i) then
|
||||||
|
begin
|
||||||
|
if (fAmpel.AutosL[i].BlinkerR) then
|
||||||
|
begin
|
||||||
|
if (fAmpel.AutosL[j].Fahrbahn=1) then
|
||||||
|
begin
|
||||||
|
if(fAmpel.AutosL[i].Image.Left>fAmpel.AutosL[j].Image.Left+fAmpel.AutosL[j].Image.width*1.5) then
|
||||||
|
begin
|
||||||
|
if(fAmpel.AutosL[i].Image.Left+fAmpel.AutosL[i].Image.Width<fAmpel.AutosL[j].Image.Left) then tempb:=true else tempb:=false;
|
||||||
|
end else tempb:=false;
|
||||||
|
end else tempb:=true;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;}
|
||||||
|
|
||||||
|
{ if tempb then
|
||||||
|
begin
|
||||||
|
fAmpel.AutosL[i].fahrbahn:=3;
|
||||||
|
fAmpel.AutosL[i].momSpeed:=fAmpel.AutosL[i].Speed+7;
|
||||||
|
end;}
|
||||||
|
|
||||||
|
{ if (fAmpel.AutosL[i].image.Top>=FahrbahnR2) and (fAmpel.AutosL[i].Fahrbahn=3) and (fAmpel.AutosL[i].BlinkerL) then
|
||||||
|
begin
|
||||||
|
fAmpel.AutosL[i].Fahrbahn:=2;
|
||||||
|
fAmpel.AutosL[i].momSpeed:=fAmpel.AutosL[i].Speed+7;
|
||||||
|
fAmpel.AutosL[i].Image.Top:=FahrbahnR2;
|
||||||
|
fAmpel.AutosL[i].BlinkerR:=true;
|
||||||
|
fAmpel.AutosL[i].BlinkerL:=false;
|
||||||
|
end;}
|
||||||
|
|
||||||
|
{ if (fAmpel.AutosL[i].image.Top<=FahrbahnR1) and (fAmpel.AutosL[i].Fahrbahn=3) and (fAmpel.AutosL[i].BlinkerR) then
|
||||||
|
begin
|
||||||
|
fAmpel.AutosL[i].Fahrbahn:=1;
|
||||||
|
fAmpel.AutosL[i].momSpeed:=fAmpel.AutosL[i].Speed;
|
||||||
|
fAmpel.AutosL[i].Image.Top:=FahrbahnR1;
|
||||||
|
fAmpel.AutosL[i].BlinkerR:=false;
|
||||||
|
fAmpel.AutosL[i].BlinkerL:=false;
|
||||||
|
end;}
|
||||||
|
|
||||||
|
{ if fAmpel.AutosL[i].Fahrbahn=3 then
|
||||||
|
begin
|
||||||
|
if fAmpel.AutosL[i].BlinkerL then fAmpel.AutosL[i].image.Top:=fAmpel.AutosL[i].image.Top+7;
|
||||||
|
if fAmpel.AutosL[i].BlinkerR then fAmpel.AutosL[i].image.Top:=fAmpel.AutosL[i].image.Top-5;
|
||||||
|
end;}
|
||||||
|
|
||||||
|
if fAmpel.AutosL[i].Active then fAmpel.AutosL[i].Image.Left:=fAmpel.AutosL[i].Image.Left+fAmpel.AutosL[i].momSpeed;
|
||||||
|
|
||||||
|
end;
|
||||||
|
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure setAmpelPlaetzeReadyToStart;
|
||||||
|
var i:integer;
|
||||||
|
begin
|
||||||
|
|
||||||
|
for i:=0 to AnzahlDerAmpelPlaetzeO-1 do
|
||||||
|
begin
|
||||||
|
fAmpel.AmpelPlaetzeO[i].Y:=AmpelPlatzOY;
|
||||||
|
fAmpel.AmpelPlaetzeO[i].X:=AmpelPlatzOX+i*20;
|
||||||
|
fAmpel.AmpelPlaetzeO[i].Width:=10;
|
||||||
|
fAmpel.AmpelPlaetzeO[i].Height:=10;
|
||||||
|
fAmpel.AmpelPlaetzeO[i].Besetzt:=false;
|
||||||
|
end;
|
||||||
|
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure setFussgaengerReadyToStart;
|
||||||
|
var i,tempi:integer;
|
||||||
|
begin
|
||||||
|
|
||||||
|
for i:=0 to AnzahlDerFussgaengerO-1 do
|
||||||
|
begin
|
||||||
|
fAmpel.FussgaengerO[i].Speed:=random(40)+1;
|
||||||
|
fAmpel.FussgaengerO[i].momSpeedx:=fAmpel.FussgaengerO[i].Speed;
|
||||||
|
fAmpel.FussgaengerO[i].momSpeedy:=fAmpel.FussgaengerO[i].Speed;
|
||||||
|
fAmpel.FussgaengerO[i].Active:=false;
|
||||||
|
fAmpel.FussgaengerO[i].Image.Parent:=fAmpel;
|
||||||
|
fAmpel.FussgaengerO[i].Image.Top:=0;
|
||||||
|
fAmpel.FussgaengerO[i].Image.Left:=-300;
|
||||||
|
fAmpel.FussgaengerO[i].Image.Width:=20;
|
||||||
|
fAmpel.FussgaengerO[i].Image.Height:=20;
|
||||||
|
fAmpel.FussgaengerO[i].Image.Stretch:=true;
|
||||||
|
fAmpel.FussgaengerO[i].AngesteuerterAmpelPlatz:=-1;
|
||||||
|
fAmpel.FussgaengerO[i].Image.Transparent:=true;
|
||||||
|
fAmpel.FussgaengerO[i].AufStrasse:=false;
|
||||||
|
tempi:=random(4);
|
||||||
|
if tempi=0 then fAmpel.FussgaengerO[i].Image.Picture.LoadFromFile(ImgFussgaengerO1);
|
||||||
|
if tempi=1 then fAmpel.FussgaengerO[i].Image.Picture.LoadFromFile(ImgFussgaengerO2);
|
||||||
|
if tempi=2 then fAmpel.FussgaengerO[i].Image.Picture.LoadFromFile(ImgFussgaengerO3);
|
||||||
|
if tempi=3 then fAmpel.FussgaengerO[i].Image.Picture.LoadFromFile(ImgFussgaengerO4);
|
||||||
|
end;
|
||||||
|
|
||||||
|
for i:=0 to AnzahlDerFussgaengerU-1 do
|
||||||
|
begin
|
||||||
|
fAmpel.FussgaengerU[i].Speed:=random(40)+1;
|
||||||
|
fAmpel.FussgaengerU[i].momSpeedx:=fAmpel.FussgaengerU[i].Speed;
|
||||||
|
fAmpel.FussgaengerU[i].momSpeedy:=fAmpel.FussgaengerU[i].Speed;
|
||||||
|
fAmpel.FussgaengerU[i].Active:=false;
|
||||||
|
fAmpel.FussgaengerU[i].Image.Parent:=fAmpel;
|
||||||
|
fAmpel.FussgaengerU[i].Image.Top:=0;
|
||||||
|
fAmpel.FussgaengerU[i].Image.Left:=-300;
|
||||||
|
fAmpel.FussgaengerU[i].Image.Width:=20;
|
||||||
|
fAmpel.FussgaengerU[i].Image.Height:=20;
|
||||||
|
fAmpel.FussgaengerU[i].Image.Stretch:=true;
|
||||||
|
fAmpel.FussgaengerU[i].AngesteuerterAmpelPlatz:=-1;
|
||||||
|
fAmpel.FussgaengerU[i].Image.Transparent:=true;
|
||||||
|
fAmpel.FussgaengerU[i].AufStrasse:=false;
|
||||||
|
tempi:=random(4);
|
||||||
|
if tempi=0 then fAmpel.FussgaengerU[i].Image.Picture.LoadFromFile(ImgFussgaengerU1);
|
||||||
|
if tempi=1 then fAmpel.FussgaengerU[i].Image.Picture.LoadFromFile(ImgFussgaengerU2);
|
||||||
|
if tempi=2 then fAmpel.FussgaengerU[i].Image.Picture.LoadFromFile(ImgFussgaengerU3);
|
||||||
|
if tempi=3 then fAmpel.FussgaengerU[i].Image.Picture.LoadFromFile(ImgFussgaengerU4);
|
||||||
|
end;
|
||||||
|
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure setAutosReadyToStart;
|
||||||
|
var i,tempi:integer;
|
||||||
|
begin
|
||||||
|
|
||||||
|
for i:=0 to AnzahlDerAutosR-1 do
|
||||||
|
begin
|
||||||
|
fAmpel.AutosR[i].Image:=TImage.create(fAmpel);
|
||||||
|
fAmpel.AutosR[i].Speed:=4+random(8);
|
||||||
|
fAmpel.AutosR[i].momSpeed:=fAmpel.AutosR[i].Speed;
|
||||||
|
fAmpel.AutosR[i].BlinkerL:=false;
|
||||||
|
fAmpel.AutosR[i].BlinkerR:=false;
|
||||||
|
fAmpel.AutosR[i].active:=false;
|
||||||
|
if fAmpel.AutosR[i].speed>7 then fAmpel.AutosR[i].Fahrbahn:=2 else fAmpel.AutosR[i].Fahrbahn:=1;
|
||||||
|
tempi:=random(4);
|
||||||
|
if tempi=0 then fAmpel.AutosR[i].Image.Picture.LoadFromFile(ImgAutoRotR);
|
||||||
|
if tempi=1 then fAmpel.AutosR[i].Image.Picture.LoadFromFile(ImgAutoGelbR);
|
||||||
|
if tempi=2 then fAmpel.AutosR[i].Image.Picture.LoadFromFile(ImgAutoBlauR);
|
||||||
|
if tempi=3 then fAmpel.AutosR[i].Image.Picture.LoadFromFile(ImgAutoGruenR);
|
||||||
|
fAmpel.AutosR[i].Image.Width:=fAmpel.AutosR[i].Image.Picture.Width;
|
||||||
|
fAmpel.AutosR[i].Image.Parent:=fAmpel;
|
||||||
|
fAmpel.AutosR[i].Image.Transparent:=true;
|
||||||
|
fAmpel.AutosR[i].Image.Left:=fAmpel.Width+1000;
|
||||||
|
if fAmpel.AutosR[i].Fahrbahn=1 then fAmpel.AutosR[i].Image.Top:=FahrbahnR1 else fAmpel.AutosR[i].Image.Top:=FahrbahnR2;
|
||||||
|
end;
|
||||||
|
|
||||||
|
for i:=0 to AnzahlDerAutosL-1 do
|
||||||
|
begin
|
||||||
|
fAmpel.AutosL[i].Image:=TImage.create(fAmpel);
|
||||||
|
fAmpel.AutosL[i].Speed:=4+random(8);
|
||||||
|
fAmpel.AutosL[i].momSpeed:=fAmpel.AutosL[i].Speed;
|
||||||
|
fAmpel.AutosL[i].BlinkerL:=false;
|
||||||
|
fAmpel.AutosL[i].BlinkerR:=false;
|
||||||
|
fAmpel.AutosL[i].active:=false;
|
||||||
|
if fAmpel.AutosL[i].speed>7 then fAmpel.AutosL[i].Fahrbahn:=2 else fAmpel.AutosL[i].Fahrbahn:=1;
|
||||||
|
tempi:=random(4);
|
||||||
|
if tempi=0 then fAmpel.AutosL[i].Image.Picture.LoadFromFile(ImgAutoRotL);
|
||||||
|
if tempi=1 then fAmpel.AutosL[i].Image.Picture.LoadFromFile(ImgAutoGelbL);
|
||||||
|
if tempi=2 then fAmpel.AutosL[i].Image.Picture.LoadFromFile(ImgAutoBlauL);
|
||||||
|
if tempi=3 then fAmpel.AutosL[i].Image.Picture.LoadFromFile(ImgAutoGruenL);
|
||||||
|
fAmpel.AutosL[i].Image.Width:=fAmpel.AutosL[i].Image.Picture.Width;
|
||||||
|
fAmpel.AutosL[i].Image.Parent:=fAmpel;
|
||||||
|
fAmpel.AutosL[i].Image.Transparent:=true;
|
||||||
|
fAmpel.AutosL[i].Image.Left:=-1000;
|
||||||
|
if fAmpel.AutosL[i].Fahrbahn=1 then fAmpel.AutosL[i].Image.Top:=FahrbahnL1 else fAmpel.AutosL[i].Image.Top:=FahrbahnL2;
|
||||||
|
end;
|
||||||
|
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure FussgaengerKnopf;
|
||||||
|
begin
|
||||||
|
|
||||||
|
FAmpel.AmpelSystem.changeToF;
|
||||||
|
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure setImagesToForm;
|
||||||
|
begin
|
||||||
|
|
||||||
|
//Bilder laden
|
||||||
|
|
||||||
|
fAmpel.FOGAmpel.Picture.LoadFromFile(ImgFAGruen);
|
||||||
|
fAmpel.FORAmpel.Picture.LoadFromFile(ImgFARot);
|
||||||
|
fAmpel.FURAmpel.Picture.LoadFromFile(ImgFARot);
|
||||||
|
fAmpel.FUGAmpel.Picture.LoadFromFile(ImgFAGruen);
|
||||||
|
|
||||||
|
fAmpel.ARGAmpel.Picture.LoadFromFile(ImgAAGruen);
|
||||||
|
fAmpel.ARYAmpel.Picture.LoadFromFile(ImgAAGelb);
|
||||||
|
fAmpel.ARRAmpel.Picture.LoadFromFile(ImgAARot);
|
||||||
|
fAmpel.ALGAmpel.Picture.LoadFromFile(ImgAAGruen);
|
||||||
|
fAmpel.ALYAmpel.Picture.LoadFromFile(ImgAAGelb);
|
||||||
|
fAmpel.ALRAmpel.Picture.LoadFromFile(ImgAARot);
|
||||||
|
|
||||||
|
fAmpel.Streetimg.Picture.LoadFromFile(ImgStreet);
|
||||||
|
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure bindImagesToAmpelSystem;
|
||||||
|
begin
|
||||||
|
|
||||||
|
fAmpel.Ampelsystem.ARAmpel.Gruen:=fAmpel.ARGAmpel;
|
||||||
|
fAmpel.Ampelsystem.ARAmpel.Gelb:=fAmpel.ARYAmpel;
|
||||||
|
fAmpel.Ampelsystem.ARAmpel.Rot:=fAmpel.ARRAmpel;
|
||||||
|
|
||||||
|
fAmpel.Ampelsystem.ALAmpel.Gruen:=fAmpel.ALGAmpel;
|
||||||
|
fAmpel.Ampelsystem.ALAmpel.Gelb:=fAmpel.ALYAmpel;
|
||||||
|
fAmpel.Ampelsystem.ALAmpel.Rot:=fAmpel.ALRAmpel;
|
||||||
|
|
||||||
|
fAmpel.AmpelSystem.FOAmpel.Gruen:=fAmpel.FOGAmpel;
|
||||||
|
fAmpel.AmpelSystem.FOAmpel.Rot:=fAmpel.FORAmpel;
|
||||||
|
|
||||||
|
fAmpel.AmpelSystem.FUAmpel.Gruen:=fAmpel.FUGAmpel;
|
||||||
|
fAmpel.AmpelSystem.FUAmpel.Rot:=fAmpel.FURAmpel;
|
||||||
|
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure setOptions(Autos,Fussgaenger:boolean);
|
||||||
|
begin
|
||||||
|
|
||||||
|
//Optionen verwerten...
|
||||||
|
fAmpel.show;
|
||||||
|
fOptions.Hide;
|
||||||
|
|
||||||
|
if Fussgaenger then
|
||||||
|
begin
|
||||||
|
fAmpel.FOKnopf.Visible:=false;
|
||||||
|
fAmpel.FUKnopf.Visible:=false;
|
||||||
|
fAmpel.tFussgaengerTimer.enabled:=true;
|
||||||
|
end else
|
||||||
|
begin
|
||||||
|
fAmpel.FOKnopf.Visible:=true;
|
||||||
|
fAmpel.FUKnopf.Visible:=true;
|
||||||
|
end;
|
||||||
|
|
||||||
|
if Autos then
|
||||||
|
begin
|
||||||
|
StartAutoTimer;
|
||||||
|
end;
|
||||||
|
|
||||||
|
{fAmpel.showmodal;}
|
||||||
|
|
||||||
|
end;
|
||||||
|
|
||||||
|
end.
|
||||||
215
newclasses.pas
Normal file
@ -0,0 +1,215 @@
|
|||||||
|
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.
|
||||||
|
|
||||||
56
vars.pas
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
unit vars;
|
||||||
|
|
||||||
|
interface
|
||||||
|
|
||||||
|
uses sysutils,splashu;
|
||||||
|
|
||||||
|
const
|
||||||
|
|
||||||
|
ImgFAGruen='Images\FAGruen.bmp';
|
||||||
|
ImgFARot='Images\FARot.bmp';
|
||||||
|
|
||||||
|
ImgAAGruen='Images\AAGruen.bmp';
|
||||||
|
ImgAAGelb='Images\AAGelb.bmp';
|
||||||
|
ImgAARot='Images\AARot.bmp';
|
||||||
|
|
||||||
|
ImgStreet='Images\Street.bmp';
|
||||||
|
|
||||||
|
AnzahlDerAutosR=10;
|
||||||
|
AnzahlDerAutosL=10;
|
||||||
|
|
||||||
|
AnzahlDerFussgaengerO=5;
|
||||||
|
AnzahlDerFussgaengerU=5;
|
||||||
|
|
||||||
|
AnzahlDerAmpelPlaetzeO=5;
|
||||||
|
AmpelPlatzOX=422;
|
||||||
|
AmpelPlatzOY=50;
|
||||||
|
|
||||||
|
ImgFussgaengerO1='Images\der mann der alles kann.bmp';
|
||||||
|
ImgFussgaengerO2='Images\der mann der alles kann.bmp';
|
||||||
|
ImgFussgaengerO3='Images\der mann der alles kann.bmp';
|
||||||
|
ImgFussgaengerO4='Images\der mann der alles kann.bmp';
|
||||||
|
|
||||||
|
ImgFussgaengerU1='Images\AAGruen.bmp';
|
||||||
|
ImgFussgaengerU2='Images\AAGruen.bmp';
|
||||||
|
ImgFussgaengerU3='Images\AAGruen.bmp';
|
||||||
|
ImgFussgaengerU4='Images\AAGruen.bmp';
|
||||||
|
|
||||||
|
ImgAutoRotR='Images\AutoRotR.bmp';
|
||||||
|
ImgAutoBlauR='Images\AutoBlauR.bmp';
|
||||||
|
ImgAutoGelbR='Images\AutoGelbR.bmp';
|
||||||
|
ImgAutoGruenR='Images\AutoGruenR.bmp';
|
||||||
|
|
||||||
|
ImgAutoRotL='Images\AutoRotL.bmp';
|
||||||
|
ImgAutoBlauL='Images\AutoBlauL.bmp';
|
||||||
|
ImgAutoGelbL='Images\AutoGelbL.bmp';
|
||||||
|
ImgAutoGruenL='Images\AutoGruenL.bmp';
|
||||||
|
|
||||||
|
FahrbahnR1=138;
|
||||||
|
FahrbahnR2=258;
|
||||||
|
|
||||||
|
FahrbahnL1=520;
|
||||||
|
FahrbahnL2=400;
|
||||||
|
|
||||||
|
implementation
|
||||||
|
|
||||||
|
end.
|
||||||