String "herunterzählen" (war: Anfänger braucht hilfe)



  • 1. einen Aussagekräftige Überschrift wählen
    2. die Caption ist ein String, den kannst du nicht einfach so runterzählen
    3. Vergleiche werden mit einem doppel = durchgeführt

    void __fastcall TForm1::Timer1Timer(TObject *Sender) 
    { int wert = StrToInt(Label3->Caption) - 1;
      Label3->Caption = IntToStr(wert); 
      if (wert==0) Timer1->Enabled = false; 
    }
    


  • void __fastcall TForm1::Timer1Timer(TObject *Sender)
    {
        Zaehler -= 1;
        Label1->Caption = IntToStr(Zaehler):
    
        if (Zaehler == 0);
            Timer1->Enabled=false;
    
    }
    

    setz den Zaehler im konstrucktor auf 25 und starte dann den timer



  • habe ich gerade probiert aber er zählt immer nur bis zur vier

    void __fastcall TForm1::Timer1Timer(TObject *Sender)
    {
    Label3->Caption=Label3->Caption -1;
    {
    if (Label3==0);
    Timer1->Enabled=false;
    }
    }

    was stimmt hier nicht



  • Sisco schrieb:

    Wie mache ich es richtig? 😡

    Indem du dir erst mal die C(++) Grundlagen zu Gemüte führst.

    -junix



  • Sisco schrieb:

    was stimmt hier nicht

    1. Hast du wieder keine Code-Tags verwendet (gugg dir mal den C/C++-Button unter dem Eingabefeld an)
    2. Vergleiche deine Lösung mit den Lösungen die oben gepostet wurden
    3. Siehe obigen Post von mir.

    -junix



  • Ich bedanke mich



  • Sisco schrieb:

    void __fastcall TForm1::Timer1Timer(TObject *Sender)
    {
      Label3->Caption=Label3->Caption -1;
      {
      if (Label3==0);
    	Timer1->Enabled=false;
      }
    }
    

    Entgegen VB wird in C++ normalerweise nicht automatisch eine Typkonvertierung
    durchgeführt.
    Die Code-Zeile

    Label3->Caption=Label3->Caption -1;
    

    funktioniert deshalb nicht. Du mußt erst das was in Caption steht in einen
    Zahlenwert umwandeln, z.B. mit StrToInt(), und anschließend diesen Zahlen-
    wert (nach Umwandlung in einen String, z.B. mit IntToStr()) wieder der
    Caption zuweisen.

    Gruß,

    Alexander



  • Alexander Kempf schrieb:

    Entgegen VB wird in C++ normalerweise nicht automatisch eine Typkonvertierung durchgeführt.

    Vorausgesetzt du überlädst den Operator - von AnsiString, ist das durchaus möglich. Allerdings bin ich mir grad nicht sicher ob das Built-In verfügbar ist.

    -junix



  • junix schrieb:

    Vorausgesetzt du überlädst den Operator - von AnsiString, ist das durchaus möglich.

    Wobei der Tip für einen erklärten Anfänger vermutlich wenig hilfreich sein
    dürfte. 🙂

    Gruß,

    Alexander



  • erstaunlicherweise funzt die zeile bei mir

    Label1->Caption=Label1->Caption - 1;
    

    würde trotzdem zu einer Typkonvertierung raten


Anmelden zum Antworten