Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi For und While Bedingungen (https://www.delphipraxis.net/33986-und-while-bedingungen.html)

inttostr-Help- 15. Nov 2004 22:52


For und While Bedingungen
 
Hi Leute,

Ich habe folgendes Problem:

1.Wenn ich bei Delphi 7 Enterprise mit einer While Bedingung arbeiten will schmiert der immer ab und reagiert nicht mehr. Woran könnte das liegen?

und

2.Habe ich das Problem, dass bei meinem eigentlich ziemlich simplen Quelltext beim Ausführen immer die gelbe und die rote Lampe gleichzeitig leuchten obwohl die rote viel früher anfangen sollte.Woran liegt das?


Delphi-Quellcode:
procedure TForm_Baustelle.Button_StartClick(Sender: TObject);
begin
 Zaehler:=0;
 Timer.Enabled:=True;
 rot1.Brush.Color:=clWhite;
 gelb1.Brush.Color:=clWhite;
 gruen1.Brush.Color:=clWhite
end;

procedure TForm_Baustelle.TimerTimer(Sender: TObject);
begin
  Zaehler:=Zaehler+1;
  For Zaehler:=1 to 16 do rot1.Brush.Color:=clRed;
  For Zaehler:=14 to 16 do gelb1.Brush.Color:=clYellow;

alcaeus 15. Nov 2004 22:55

Re: For und While Bedingungen
 
Hi inttostr-Help-,

Delphi-Quellcode:
For Zaehler:=1 to 16 do rot1.Brush.Color:=clRed;
For Zaehler:=14 to 16 do gelb1.Brush.Color:=clYellow;
Wenn du abfragen willst ob Zaehler zwischen 1 und 16 liegt, dann musst du es so machen:

Delphi-Quellcode:
if (Zaehler >= 1) and (Zaehler <= 16) then
  rot1.Brush.Color := clRed;
if (Zaehler >= 16) and (Zaehler <= 16) then
  gelb1.Brush.Color := clYellow;
Greetz
alcaeus

jim_raynor 16. Nov 2004 06:47

Re: For und While Bedingungen
 
Zitat:

Zitat von inttostr-Help-
1.Wenn ich bei Delphi 7 Enterprise mit einer While Bedingung arbeiten will schmiert der immer ab und reagiert nicht mehr. Woran könnte das liegen?

1. Es ist eine While-Schleife und keine Bedingung :warn:

2. Wenn du uns dazu nicht ein bissle Quellcode präsentiert können wir dir nicht helfen. Ich schaue grade mal in meine Glaskugel, aber sehe nur, dass es noch viel zu früh ist :gruebel: :mrgreen:

runger 16. Nov 2004 06:58

Re: For und While Bedingungen
 
Hallo,

Du wirfst for und if durcheinander.
For x:=1 to 16 do heisst, dass die Variable x zuerst den Wert X=1 annimmt, dann den Wert 2 .. 16.
Ich empfehle dir dringend eine Tutorial Delphi für Anfänger.
(Ist ganz ernst gemeint)

Rainer

inttostr-Help- 16. Nov 2004 14:39

Re: For und While Bedingungen
 
Delphi-Quellcode:
if (Zaehler >= 1) and (Zaehler <= 16) then
  rot1.Brush.Color := clRed;
if (Zaehler >= 16) and (Zaehler <= 16) then
  gelb1.Brush.Color := clYellow;
Wenn ich diesen Quellcode so benutze geht die Lampe aber nicht aus wenn der Zaehler größer als 16 ist. Woran liegt das?

Steve 16. Nov 2004 14:42

Re: For und While Bedingungen
 
Hi,

if (Zaehler >= 16) and (Zaehler <= 16) then

ist nur true für Zaehler=16...... :roll:

Gruß
Stephan :dance:

Pseudemys Nelsoni 16. Nov 2004 14:52

Re: For und While Bedingungen
 
*post gelöscht*

TeronG 16. Nov 2004 14:57

Re: For und While Bedingungen
 
Zitat:

Zitat von inttostr-Help-
Delphi-Quellcode:
if (Zaehler >= 16) and (Zaehler <= 16) then // wenn zähler größer oder gleich 16 UND kleiner oder gleich 16 dann
  gelb1.Brush.Color := clYellow;
Wenn ich diesen Quellcode so benutze geht die Lampe aber nicht aus wenn der Zaehler größer als 16 ist. Woran liegt das?

Evtl. Tippfehler ?? mach mal bei der erste 16 ne 14 ...
Delphi-Quellcode:
if (Zaehler >= 14) and (Zaehler <= 16) then // wenn zähler größer oder gleich 14 UND kleiner oder gleich 16 dann
  gelb1.Brush.Color := clYellow; // Lampe gelb1 auf gelb
und noch n
Delphi-Quellcode:
if (Zaehler > 16) then   // wenn zähler größer 16 dann
begin
  gelb1.Brush.Color:=clWhite; // Lampe wieder White
  rot1.Brush.Color :=clWhite; // Lampe wieder White
end;

alcaeus 16. Nov 2004 15:01

Re: For und While Bedingungen
 
Zitat:

Zitat von Steve
if (Zaehler >= 16) and (Zaehler <= 16) then

ist nur true für Zaehler=16...... :roll:

:oops: War ja auch ein Tippfehler meinerseits :stupid:
Wo ich wohl mit meinen Gedanken war :gruebel:

Greetz
alcaeus

[add]@inttostr-Help-: bevor du noch weiter rumratest, solltest du dir wirklich einige einfache Tutorials zum Thema if-Abfragen und Schleifen raussuchen.[/add]

DP-Maintenance 16. Nov 2004 15:02

DP-Maintenance
 
Dieses Thema wurde von "Sharky" von "Programmieren allgemein" nach "Object-Pascal / Delphi-Language" verschoben.
"Programmieren Allgemein" ist ja für Fragen die NICHTS mit Delphi zu tun haben.


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:47 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 by Thomas Breitkreuz