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.
|
||||