![]() |
Re: Ampelkreuzung
Zitat:
|
Re: Ampelkreuzung
Seit wann sieht man Threads im Taskmanager :gruebel:
|
Re: Ampelkreuzung
Das kann man einstellen. Und der TTimer der VCL arbeitet mit SetTimer, also ohne Thread.
|
Re: Ampelkreuzung
Zitat:
|
Re: Ampelkreuzung
Hi
Für die Ampelsteuerung brauchst du exakt 1 Timer. Ja nach Ampel ( Kreuzung mit/Ohne Abbieger, Fußgänger) hast du feste Schritte Z. einfache Kreuzung 1.Ausgang Quer Grün, Kreuz Rot 2. Quer Gelb, Kreuz Rot 3. Quer Rot, Kreuz Rot 4. Quer Rot, Kreuz Rot-Gelb 5. Quer Rot, Kreuz Grün 6. Quer Rot, Kreuz Gelb 7. Quer Rot, Kreuz Rot 8. Quer Rot-Gelb, Kreuz Rot 9.=1. Im Ampel-Timer incrementierst du einen Schrittzähler. Wenn du nun hinter die Schritte deine Schrittzeit einträgst, kannst du in deiner Auswertung dem Timerintervall diese Zeit zuweisen und er wird diese Zeit bis zum nächsten Schritt ruhe geben Am einfachsten baust du für jede Ampelphase eine eigene Procedure. Im Timerevent rufst du diese dann aus einer Case - Anweisung heraus auf im Timer
Delphi-Quellcode:
dann die Procedure
Case Schritt of 1: Gruen_Rot;
Delphi-Quellcode:
So kanst du die einzelnen Schritte besser übesehen.
Procedure TMyForm.GruenRot;
Begin Timer.Intervall:=2000; // 2 Sek z.B. ist nächste Pause Ampel_1_QuerRot.Brush.Color:=ClBlack; // bedenke, Die Lampen in der Ampel Ampel_1_QuerGelb.Brush.Color:=ClBlack; // gehen aus, sie ändern nicht die Farbe Ampel_1_QuerGruen.Brush.Color:=ClLime; Ampel_2_QuerRot.Brush.Color:=ClBlack; // 2. Ampel , gleiche Richtung Ampel_2_QuerGelb.Brush.Color:=ClBlack; Ampel_2_QuerGruen.Brush.Color:=ClLime; Ampel_1_KreuzRot.Brush.Color:=ClRed; // 1. Ampel Kreuzverkehr Ampel_1_KreuzGelb.Brush.Color:=ClBlack; Ampel_1_KreuzGruen.Brush.Color:=ClBlack; Ampel_2_KreuzRot.Brush.Color:=ClRed; // 2. Ampel Kreuzverkehr Ampel_2_KreuzGelb.Brush.Color:=ClBlack; Ampel_2_KreuzGruen.Brush.Color:=ClBlack; end; Mit Timern für Fußgaänger und 2 für Fahrzeuge ( langsam und schnell sowie ein bischen Mathematik ) bist du schon auf 5 Timer geschrumpft und dürftest eine relativ dynamische Ansicht erreichen. Gruß oldmax |
Re: Ampelkreuzung
uiiiii
vielen Dank für deine Mühe, ich werds direkt ausprobieren. Hab auch nun einige Timer schon streichen können ;) grüße Danül |
Re: Ampelkreuzung
hey leute...
also ich brauche die zeiten einer ampelkreuzung,da ich keine lust habe sie zu stoppen ;D deswegen wollte ich euch mal fragen ob sie jemand für mich perrat hat...? |
Re: Ampelkreuzung
Siehe eine Seite weiter vorn:
Zitat:
|
Re: Ampelkreuzung
Zitat:
- den "Timer" nicht mit einem gleichmäßigem Intervall laufen lassen, sondern jeweils mit nötigem TimeOut (aktuelle Zeit bis zur nächsten Umschaltung) starten. - einen Timer mit maximal dem größten gemeinsamen Teiler laufen lassen und und die einzelnen Zeitabschnitte in entsprechende Intervalle umsetzen Zitat:
|
Re: Ampelkreuzung
Wenn die Ampel von rot auf grün wechselt, wird auch erst rot einzeln, dann rot zusammen mit gelb und anschließend nur grün angezeigt. Von grün auf rot werden die Farben nur einzeln angezeigt.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:07 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz