Frage wegen Funktion wiederholen
-
Hallo,
ich hab mal wieder ne Frage, ich hab folgende funktion programmiert:
void __fastcall TForm_perönliche_daten::Edit1Change(TObject *Sender) { int Edit1; year - Edit1 == alter; if (alter < 18) { Edit2->Text = "unter 18"; } else { if (alter> 70) { Edit2->Text = "über 70"; } else { Edit2->Text = "zwischen 18-70"; } } }jetzt hab ich folgendes Problem, wenn ich in das Edit1-Feld eine Zahl eingebe z.B. 1987 übernimmt er als Geburtsjahr die Zahl "1" und keine Weiter zahl, gibt es ein Befehl der öfters prüft was in dem Edit1-Feld steht und das dann neu berechnet? Schon mal Danke.
**
Sebastian
**
-
Bin mir nicht sicher, bin Anfänger
aber versuchs mal nicht in Edit1Change zu machen sondern z.b. wenn man nen Button klickt oder OnKeyPress auf Enter oder so.
-
Hallo,
Ich würde dir raten erstmal ein Tutorial (Texteditortutorial aus der BCB-Hilfe, C++ Tutorial siehe oben) durchzuarbeiten. Hier stimmt einiges nicht.
void __fastcall TForm_perönliche_daten::Edit1Change(TObject *Sender) { int Edit1; // Heißt dein Editfeld nicht Edit1? Hiermit überdeckst du es // eigentlich int Geburtsjahr = StrToIntDef(Edit1->Text, 0); if( Geburtsjahr == 0 ) { Edit2->Text = "falsche Eingabe"; return; } year - Edit1 == alter; // == ist keine Zuweisung sondern ein Vergleich, für eine Zuweisung ist es verkehrtrum // eigentlich int alter = year - Geburtsjahr; // wenn year das aktuelle Jahr ist if (alter < 18) { Edit2->Text = "unter 18"; } else { if (alter> 70) { Edit2->Text = "über 70"; } else { Edit2->Text = "zwischen 18-70"; } } }[edit]
Stimmt, aus dem OnChange muß das auch noch raus. Ich pack sowas meistens in OnExit. Dazu vielleicht noch ein Fokuswechsel in OnKeypress wenn Key == VK_RETURN.