![]() |
Timer VErständnis Frage!
Noch eine dumme Frage!
Ich habe das so verstanden, dass ein Timer einen Befehl nur imer wieder wiederholt. Ich soll aber nun eine Ampel bauen.Also ich habe vier kleine Icons.Einmal nur rot,dann rot und gelb, dann grün und einen nur gelb. diese bilder müssen so hintereinander visible werden dass das auch aussieht wie ne ampel. Das Prog habt ihr ja gesehen.Also den Button um den Timer ein und auszustellen habe ich ja nun.habe zu anfang ampelrot.visible:=true und die anderen bilder obendrüber.der timer wiederholt ja nur eine sache aber wie kann man sachen HINTEREINADNER wiedergeben? Bitte helft mir... dann is das Prog auch fertig! Danke Danke Wargrave |
Re: Timer VErständnis Frage!
Speicher dir doch die Ampelphase und mach in dem OnTimer-Event ne case-Abfrage
|
Re: Timer VErständnis Frage!
Hmm das war mir ne nummer zu schnell als Noob!
Erstens: wo krieg ich ne ampelphase her ? oder meinst du : rot.visible:=true; rotgelb.visible:=false; gruen.visible:=false; gelb.visible:=false; ??? und was is ne case abfrage? Sorry bin noch neu auf dem gebiet! Aber trotzdem danke! |
Re: Timer VErständnis Frage!
Hi Wargrave,
wenn ich mich nicht irre, dann beziehst du dich auf ![]() Du könntest die Tag-Eigenschaft des Timers dazu verwenden: Im OnTimer
Delphi-Quellcode:
Kurze Erklärung: Die Werte hängen vom Timer-Intervall ab. Nehmen wir an, du stellst 1000 (entspricht ca. 1 Sekunde) als Intervall ein, dann ist die Ampel 5 Sekunden lang auf Rot, 5 Sekunden lang auf Grün, 2 Sekunden auf Orange und dann beginnt das Spiel von neuem.
Timer1.Tag := Timer1.Tag + 1;
case Timer1.Tag of 5: //schalte auf grün 10: //schalte auf orange 12: begin //schalte auf rot Timer1.Tag := 0; //zurücksetzen, der Spaß beginnnt von neuem. end; end; Greetz alcaeus |
Re: Timer VErständnis Frage!
War der Quelltext gerade nicht noch anders?
Ohne case? Naja mal schaun! |
Re: Timer VErständnis Frage!
Zitat:
Greetz alcaeus |
Re: Timer VErständnis Frage!
Ich würde aber gerne nochmal den ausführlichen sehen. Ohne "case" Befehl.
Es hat wunderbar funktioniert aber was habe ich jetzut falsch gemacht?: -------------------------------------------------------------------------
Delphi-Quellcode:
--------------------------------
procedure TForm1.startClick(Sender: TObject);
begin if (start.Caption = 'Ampel starten!') //Wenn Caption=Ampel starten! then begin start.Caption := 'Ampel stoppen!'; //Dann Caption:=Ampel stoppen! zeit.Enabled := true; //Dann Timer aktivieren end else begin start.Caption := 'Ampel starten!'; //Sonst Caption:=Ampel starten! zeit.Enabled := false; //Sonst Timer deaktivieren end; end; procedure TForm1.zeitTimer(Sender: TObject); begin if (zeit.Tag= 3) then rotgelb.visible:=true; if (zeit.Tag= 4) then gruen.visible:=true; if (zeit.Tag= 7) then gelb.visible:=true; if (zeit.Tag=8 ) then rot.visible:=true; if (zeit.Tag=8 ) then zeit.Tag:=0; end; end. zeit recht häufig an undefiniertes Objeakt als der markiert dann den timer. is aber quatsch! Bitte nochmal um hilfe. MFG Wargrave [edit=Admin]Quellcode in Delphi-Tags gesetzt. Künftig bitte selber machen. Danke ;-) Mfg, Daniel[/edit] |
Re: Timer VErständnis Frage!
Zitat:
Und du solltest die [ delphi]-Tags (ohne Leerzeichen) verwenden um den Code formatiert anzeigen zu lassen. So wie jetzt liest er sich sehr schlecht. |
Re: Timer VErständnis Frage!
Hi Wargrave,
Zitat:
Zitat:
Greetz alcaeus |
Re: Timer VErständnis Frage!
Em also das alles ist ja sehr plausibel.
Aber es soll auch möglich sein (also komplizierter) diese Ampel nur mit IF-THEN-ELSE schleifen und timern zu schalten ohne dabei den befehl Timer1.Tag auszunutzen. weiß einer wie? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:23 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