Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Case und Schleife?? (https://www.delphipraxis.net/81150-case-und-schleife.html)

Sankar 21. Nov 2006 15:42


Case und Schleife??
 
So hallo Leute, :-D

Ich hab hier mal ein kleines Problem und hoffe ihr könnt mir dabei helfen.

Also als erstes mal soll das Programm folgendes machen: :???:

Mit Hilfe eines Timers und einer Case-Anweisung möchte ich mit dem Programm eine Art Ampel darstellen.
Dies funktioniert soweit auch wunderbar!
Es läuft auch ein Zähler mit damit ich die einzelnen Schritte nachvollziehen kann!
Das heißt beim Klick auf den Button wird der Timer auf true gesetzt.
Dort wird dann folgendes ausgeführt:
1: Rot
2: Gelb/Rot
3: gelb
4: Grün
5: Gelb

Delphi-Quellcode:
begin
Lb_date.Caption := TimeToStr(Now());
Lb_zaehler1.Caption:=inttostr(zaehler);
zaehler:=zaehler+1;


  case zaehler of

    1:
    begin
      Pn_green.color:=clBtnFace;
      Pn_yellow.Color:=clBtnFace;
      Pn_red.Color:=clred;
    end;

    2:
    begin
      Pn_green.color:=clBtnFace;
      Pn_yellow.color:=clyellow;
    end;

    3:
    begin
      Pn_red.color:=clBtnFace;
      Pn_yellow.Color:=clyellow;
      Pn_green.color:=clBtnFace;
    end;
    4:
    begin
      Pn_red.color:=clBtnFace;
      Pn_yellow.color:=clBtnFace;
      Pn_green.Color:=clgreen;
    end;
    5:
    begin
      Pn_red.color:=clBtnFace;
      Pn_green.Color:=clBtnFace;
      Pn_yellow.Color:=clyellow;
    end;
  end;

end;


procedure TForm1.Btn_startClick(Sender: TObject);
begin
Timer1.enabled:=true;
end;


Soweit läuft es auch wunderbar nur möchte ich jetzt, dass das programm nach der ausführung von 5 wieder mit 1 beginnt.
Hab es versucht in eine Schleife zu schreiben doch das hat nicht so richtig wollen! Deshalb frag ich euch mal an dieser Stelle wie ihr das Umsetzen würdet!

Schonmal vielen Dank im vorraus!

mfg Sankar :???:

Klaus01 21. Nov 2006 15:46

Re: Case und Schleife??
 
Delphi-Quellcode:
   5:
    begin
      Pn_red.color:=clBtnFace;
      Pn_green.Color:=clBtnFace;
      Pn_yellow.Color:=clyellow;
      zaehler:=0;
    end;
  end;
Sollte doch so gehen, oder?

Grüße
Klaus

3_of_8 21. Nov 2006 15:46

Re: Case und Schleife??
 
Delphi-Quellcode:
zaehler:=(zaehler-1) mod 5+1;
EDIT: Wenn dann schon zaehler:=1; ;)

Dax 21. Nov 2006 15:48

Re: Case und Schleife??
 
Zitat:

Zitat von 3_of_8
Delphi-Quellcode:
zaehler:=(zaehler-1) mod 5+1;
EDIT: Wenn dann schon zaehler:=1; ;)

Wieso nicht (z mod 5)+1?

Klaus01 21. Nov 2006 15:51

Re: Case und Schleife??
 
@3_of_8

Zitat:

Zitat von 3_of_8
Delphi-Quellcode:
zaehler:=(zaehler-1) mod 5+1;
EDIT: Wenn dann schon zaehler:=1; ;)

Warum wenn im Prozeduranfang "zaehler:=zaehler+1; " steht?

Grüße
Klaus

3_of_8 21. Nov 2006 15:52

Re: Case und Schleife??
 
Ich hab nicht genau nachgeschaut, wie das Inkrementieren gemacht wird.

Natürlich kann man das inkrementieren und die Restanweisung...
Delphi-Quellcode:
zaehler:=zaehler+1;
zaehler:=(zaehler-1) mod 5+1;
...zusammenfassen in:
Delphi-Quellcode:
zaehler:=zaehler mod 5+1;
EDIT: mist, stimmt... ich bin irgendwie atm auch ned so ganz auf der Höhe meiner Konzentrationsfähigkeit. ^^

Sankar 21. Nov 2006 15:54

Re: Case und Schleife??
 
Ich danke euch vielmals!!! Man an die einfachsten Dinge denkt man irgendwie immer zuletzt! Ich zumindest! :-D :-D
Vielen Dank! Optimial!

mfg Sankar :???:


Alle Zeitangaben in WEZ +1. Es ist jetzt 06: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