Timer
Hey leuts,
Ich will eine Ampel erstellen die z.B. automatisch bei 1 sec auf gelb 1,5 sec auf grün schaltet.. Also Timer1. ... Wenns geht mit case .. of Ist wahrscheinlich einfach aber ich komm grad net drauf :cry: Danke im Voraus. MFG Ersan |
Re: Timer
Globale Variable. Intervall des Timers auf 500, dort die Variable hochzählen und mit case-of Farbe bestimmen. Das schaffst du.
|
Re: Timer
Delphi-Quellcode:
Die Farbe wird in der Titelzeile des Fensters als Zeichenkette angezeigt. Ich habe auch gleich noch die rot-gelb Phase mit eingebaut, wie es in der Wirklichkeit auch ist.
type
TAmpelPhase = ( apRot = 0, apRotGelb = 1, apGelb = 2, apGruen = 3); type TForm1 = class(TForm) Timer1: TTimer; procedure FormCreate(Sender: TObject); procedure Timer1Timer(Sender: TObject); private { Private declarations } AktuelleAP: TAmpelPhase; public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); begin AktuelleAP := apRot; end; procedure TForm1.Timer1Timer(Sender: TObject); begin case AktuelleAP of apRot: begin Caption := 'Rot'; AktuelleAP := apRotGelb; end; apRotGelb: begin Caption := 'RotGelb'; AktuelleAP := apGruen; end; apGelb: begin Caption := 'Gelb'; AktuelleAP := apRot; end; apGruen: begin Caption := 'Grün'; AktuelleAP := apGelb; end; end; end; |
Re: Timer
thx aber was wäre denn der befehl für zB " bei 10 passiert dies und das"
case timer1.interval of 10 : ... da passiert bei mir aber nichts, denn bei dem object inspector ist das interval auf 1000 und nur auf 1000 klappt es also case timer1.interval of 1000 : ... |
Re: Timer
Was hat denn das Intervall des Timers mit der Ampelphase zu tun? Entscheident ist doch nur, was für eine Phase gerade angezeigt wird, um zu bestimmen, welche als nächstes kommt.
|
Re: Timer
Zitat:
ok thx :shock: das muss ich jez erstmal verstehen |
Re: Timer
Da gibt es nichts zu verstehen. Du könntest das ganze auch mit einem einfachen Integer machen. Mache ich eigentlich auch, nur, das sich mir eben die einzelnen Werte "benannt" habe mit einem eigenen Aufzählungsdatentypen, um es etwas übersichtlicher und einfachher zu machen.
|
Re: Timer
Zitat:
aber ok also hat nix damit zu tun. |
Re: Timer
Zitat:
|
Re: Timer
Aber noch mal zur Erklärung:
Wenn die Ampel rot ist (das ist der Startwert), dann wird rot angezeigt und für den nächsten Aufruf der Timer-Prozedur der Wert der Variablen AktuelleaP auf rot-gelb gesetzt, weil das die Phase ist, die nach rot kommt. Da die Variable beim nächtsen mal rot-gelb ist, springt er in den rot-gelb Zweig. Dort wird dan der Wert auf die nächste Ampelpahe gesetzt, die folgen soll. Ich hoffe, dass kanst du auch morgen deinem Lehrer erklären. ;) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:13 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz