Schleife rückwärts..aber wie
-
Hallo,
ich habe eine einfache frage, wie kann ich in einer schleife zurückzählen?
for (int i=10;i<=0;i--) { Application->ProcessMessages(); Label1->Caption=i; }
funktioniert nicht...er zählt nicht runter auf null!
-
ja, woran mag das wohl liegen?
i<=0 -> Führe Schleife so lange aus, wie i kleiner oder gleich 0 ist. Da i aber mit 10 initialisiert wird, ist diese Bedingung immer falsch. Ergo wird auch die Schleife nicht ausgeführt...
-
Hallo Testerlein
Versuche es mal so das funzt:
//--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include "Unit1.h" int i = 10; //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TForm1::Timer1Timer(TObject *Sender) { if( i != 0) Timer1->Enabled = true; i--; Application->ProcessMessages(); Label1->Caption=i; if(i==0) Timer1->Enabled = false; } //--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { Timer1->Enabled = true; } //---------------------------------------------------------------------------
Allen im Board noch ein gesundes neues Jahr 2005
-
@Prae... ??
-
@ Joe
Ich weiß hat zwar net viel mit schleife zu tun wenn er was rückwärts oder
vorwärts zählen will erfüllt es den gleichen zweck.
-
Das einzige was er an seinem Code ändern muss ist:
for (int i=10;i<=0;i--)
in
for (int i=10;i>=0;i--)
-
Ja das ist ja ok aber da wir die schleife so schnell durschlaufen
das man net sieht das er zurückläuft.
Dann muss er es so ändern um was vom zählen mitzubekommen:
for (int i = 10 ; i >= 0; i--) { Sleep (1000); Application->ProcessMessages(); Label1->Caption=i; }
-
Davon hat er aber nix gesagt. Das Problem war, dass die Schleife gar nicht durchlaufen wurde. Ich gehe mal davon aus, dass das Label->Caption... nur zur Kontrolle dient...
Wir werden wissen, wenn 'Testerlein' was dazu sagt.
-
ja genau @ Joe werden wir abwarten und Tee trinken ich fange schon mal an
-
So liebe leut: des Rätsels Lösung
C/C++ Code: //--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include "Unit1.h" int i = 10; //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TForm1::Timer1Timer(TObject *Sender) { if( i != 0) Timer1->Enabled = true; i--; Application->ProcessMessages(); Label1->Caption=i; if(i==0) Timer1->Enabled = false; } //--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { Timer1->Enabled = true; } //--------------------------------------------------------
war gut gemeind, aber hilft mir hier nich direkt was...weil ich ja eine schleife brauchte, und:
Joe_M. schrieb:
Ich gehe mal davon aus, dass das Label->Caption... nur zur Kontrolle dient...
richtig!
und somit habe ich genau das:
for (int i = 10 ; i >= 0; i--) { Sleep (1000); Application->ProcessMessages(); Label1->Caption=i; }
gesucht!
danke erstmal!