So... also ich hab jetzt das zweite Formular gemacht...
Wundert euch nicht, es funktioniert noch nicht vollständig und es sieht auch noch nicht gut aus... Ich habe erstmal nur das Hauptprogramm gemacht, und nicht auf die Optik geachtet...
also damit meine ich sachen wie Überschrift und Anleitungstext... Ihr müsst einfach nur auf Erweiterte Simulation klicken und dann öffnet sich das zweite Formular... Ich muss den Text im ersten noch ändern, weil dort ja steht, dass im 2. Formular die Kreuzung kommt, was aber nicht der Fall ist... Aber das ist wie gesagt erstmal zweitrangig... die optikfehler merze ich dann aus, wenn das prg. läuft... und da ist ein erheblicher fehler drin... nämlich wenn fußgänger ampel auf grün ist und die Autoampel auf rot, springt die Fußgängerampel nach drei Sekunden nicht mehr auf rot und somit läuft der letzte Teil des Quelltextes erst gar nicht ab... Ich habe schon seit zwei Stunden dran gesessen und weiß echt nicht mehr, was ich falsch gemacht habe...
Hier ist der komplette Quelltext:
Delphi-Quellcode:
procedure TForm1.BAmpelOClick(Sender: TObject);
begin
BAmpelO.Caption := 'Signal kommt!';
BAmpelU.Caption := 'Signal kommt!';
Timer1.Enabled := true;
end;
procedure TForm1.BAmpelUClick(Sender: TObject);
begin
BAmpelU.Caption := 'Signal kommt!';
BAmpelO.Caption := 'Signal kommt!';
Timer1.Enabled := true;
end;
procedure TForm1.Timer2Timer(Sender: TObject);
begin
if ARL.Visible and ARR.Visible then
begin
FRL.Visible := false;
FRR.Visible := false;
FGRL.Visible := true;
FGRR.Visible := true;
Timer3.Enabled := true;
end;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
if not ARL.Visible and not ARR.Visible and not AGL.Visible and not AGR.Visible and not AGRL.Visible and not AGRR.Visible then
begin
ARL.Visible := false;
ARR.Visible := false;
AGL.Visible := false;
AGR.Visible := false;
AGRL.Visible := true;
AGRR.Visible := true;
Timer1.Interval := 4000;
end
else if AGRL.Visible and AGRR.Visible and not AGL.Visible and not AGR.Visible then
begin
AGRL.Visible := false;
AGRR.Visible := false;
ARL.Visible := false;
ARR.Visible := false;
AGL.Visible := true;
AGR.Visible := true;
Timer1.Interval := 1000;
end
else if AGL.Visible and AGR.Visible and not ARL.Visible and not ARR.Visible then
begin
AGL.Visible := false;
AGR.Visible := false;
AGRL.Visible := false;
AGRR.Visible := false;
ARL.Visible := true;
ARR.Visible := true;
Timer1.Interval := 4000;
end;
Timer2.Enabled := true;
end;
procedure TForm1.Timer3Timer(Sender: TObject);
begin
Timer3.Interval := 3000;
BAmpelO.Caption := 'Drücken';
BAmpelU.Caption := 'Drücken';
Timer4.Enabled := true;
end;
procedure TForm1.Timer4Timer(Sender: TObject);
begin
if ARL.Visible and ARR.Visible then
begin
FRL.Visible := true;
FRR.Visible := true;
FGRL.Visible := false;
FGRR.Visible := false;
Timer5.Enabled := true;
end;
end;
procedure TForm1.Timer5Timer(Sender: TObject);
begin
if FRL.Visible and FRR.Visible then
begin
if not AGL.Visible and not AGR.Visible and not AGRL.Visible and not AGRR.Visible then
begin
ARL.Visible := true;
ARR.Visible := true;
AGL.Visible := true;
AGR.Visible := true;
AGRL.Visible := false;
AGRR.Visible := false;
Timer3.Interval := 1000;
end
else if ARL.Visible and ARR.Visible and AGL.Visible and AGR.Visible then
begin
ARL.Visible := false;
ARR.Visible := false;
AGL.Visible := false;
AGR.Visible := false;
AGRL.Visible := true;
AGRR.Visible := true;
Timer3.Interval := 4000;
end
end;
end;
end.
Die Datei hab ich auch noch beigefügt, damit ihr mal seht, was ich meine... Und tut mir leid, aber der Quelltext ist ziemlich krass...^^ Ich hab 5 Timer verwendet^^ hehe
Naja und die Bezeichnungen sollte ich euch vielleicht noch kurz erklären:
ARL heißt AmpelRotLinks... mit Ampel meine ich die beiden AutoAmpeln... Mit Rot eben die Farbe und mit Links, dass es die auf der linken Seite des Zebrastreifens ist... ARR heißt dann logischerweise AmpelRotRechts...
FRL heißt FußgängerampelRotLinks... also steht das F für Fußgängerampel und R wieder für Rot und L für Links, also auf der linken Seite des Zebrastreifens...
G = Gelb
GR = Grün
R = Rot
A = Autoampel
F = Fußgängerampel
L = Links
R = Rechts
Es ist für einen außenstehenden echt sehr kompliziert, aber ich weiß ganz genau, was mit was gemeint ist... ich komme nicht durcheinander... Aber da muss eben ein Fehler drin sein