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 WinAPIbis bald
akari
-
Hi!, danke!
Ich habe den Fehler grade gefunden.
BTW, in das Edit Feld gehen schon nur Ziffern

THX nochmal
