Edit mit Int -> OnChange -> "" ist kein gültiger Wert



  • also ich trage die erste Zahl ins Feld ein und dann kommt dieser Fehler...

    void __fastcall TForm1::OnChangePV(TObject *Sender)
    {
      AnsiString wzahl = P->Text;
      if(wzahl.Length() == 0)
      {
        P->Color = clWhite;
        return;
      }
      int zahl = wzahl.ToInt();
      bool prim = primzahl(zahl);
      if(!prim || Q->Text == P->Text)
      {
        P->Color = clYellow;
      }else{
        P->Color = clWhite;
      }
      AnsiString q = Q->Text;
      AnsiString p = P->Text;
      int pp = p.ToInt();
      int qq = q.ToInt();
      if(qq == 1 || pp == 1)
      {
        Q->Color = clRed;
        P->Color = clRed;
        error = true;
      }
      error = false;
      schluesselBerechnen();
    }
    


  • Hallo

    Der Fehler kann nur von den ToInt() verursacht werden. wzahl überprüfst du ja schon, aber p und q nicht. Du must zumindestens die auch noch überprüfen.
    Sinnvoller ist aber eine von den zwei Möglichkeiten :
    - IntToStrDef oder try/catch benutzen um alle nicht umwandelbaren Strings zu filtern, nicht nur die leeren
    - Die Eingabemöglichkeit schon auf Ziffern beschränken, entweder mit TMaskEdit oder mit der WinAPI

    bis bald
    akari



  • Hi!, danke!

    Ich habe den Fehler grade gefunden.

    BTW, in das Edit Feld gehen schon nur Ziffern 😉

    THX nochmal 😃


Anmelden zum Antworten