Einzelnen Beitrag anzeigen

deepdragon

Registriert seit: 28. Mai 2007
22 Beiträge
 
Delphi 7 Personal
 
#25

Re: Einfache Ampelsimulation funktioniert nicht...

  Alt 3. Jun 2007, 20:38
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
Angehängte Dateien
Dateityp: exe pampelsimulation_123.exe (514,5 KB, 10x aufgerufen)
  Mit Zitat antworten Zitat