Testen ob Eingabe in TEdit Zahlen sind
-
Ich mache grade ein kleines Progg zum Umrechnen von Währungen, und nun möchte ich irgendwie per if & else, bevor das Programm durch falsche Angaben abstürzt, prüfen ob die Eingabe auch wirklich Zahlen sind und im falle einer ungültigen Eingabe eine Fehlermeldung ausgeben. Das mit der Fehlermeldung bekomme ich selber hin.
1 Editfeld für den Kurs, 2 Editfelder für € und $ zur Ein-, und nach dem Berechnen zur Ausgabe, 1 Button zum Berechnen.
Und wie mach ich es möglich dass ich auch Kommazahlen eingeben kann? Ich arbeite momentan mit ->Text.ToInt()
danke
-
Ich rolls mal von hinten auf...
Und wie mach ich es möglich dass ich auch Kommazahlen eingeben kann? Ich arbeite momentan mit ->Text.ToInt()
Mit ->Text.ToDouble()
bevor das Programm durch falsche Angaben abstürzt, prüfen ob die Eingabe auch wirklich Zahlen sind und im falle einer ungültigen Eingabe eine Fehlermeldung ausgeben
das kannst du mithilfe von try/catch machen
Kannst aber von vornherrein festlegen dass nur Zahlen und Komma gehen
// Zeiger auf Sender casten: TEdit* pEdit = dynamic_cast<TEdit*>(Sender); // Falls Punkt oder Komma eingegeben und noch kein Dezimaltrennzeichen // im Eingabestring vorhanden, Dezimaltrennzeichen einsetzen: if((Key == '.' || Key == ',') && !pEdit -> Text.Pos(DecimalSeparator)) Key = DecimalSeparator; // Zeichen verwerfen, falls weder Minus-Zeichen am Anfang des // Eingabestrings noch eine Ziffer eingegeben: else if((Key == '-' && (pEdit->SelStart || pEdit->Text.Pos("-"))) || ((Key < '0' || Key > '9') && Key != 8 && Key != '-')) Key = 0;
-
-
Dragonfire schrieb:
// Zeiger auf Sender casten: TEdit* pEdit = dynamic_cast<TEdit*>(Sender); // Falls Punkt oder Komma eingegeben und noch kein Dezimaltrennzeichen // im Eingabestring vorhanden, Dezimaltrennzeichen einsetzen: if((Key == '.' || Key == ',') && !pEdit -> Text.Pos(DecimalSeparator)) Key = DecimalSeparator; // Zeichen verwerfen, falls weder Minus-Zeichen am Anfang des // Eingabestrings noch eine Ziffer eingegeben: else if((Key == '-' && (pEdit->SelStart || pEdit->Text.Pos("-"))) || ((Key < '0' || Key > '9') && Key != 8 && Key != '-')) Key = 0;Verstehe ich leider gar nicht x.x .. Was meinst du mit Zeiger auf Sender casten, und könntest du den Rest evtl etwas erläutern? Z.b. !pEdit..
-
Die von Dragonfire gezeigte Codesnip muss ins
OnKeyPress(TObject *Sender, char &Key) Ereignis des Editierfeldesund schon müsste klar sein wiso er auf den Sender castet.
-
VergissEs schrieb:
Die von Dragonfire gezeigte Codesnip muss ins
OnKeyPress(TObject *Sender, char &Key) Ereignis des Editierfeldesund schon müsste klar sein wiso er auf den Sender castet.
Was ist ein Sender x.x ? Gibt es irgendwo evtl ein eBook das mir den Einstieg in Borland erleichtert? Ich arbeite grade einzelne Tuts durch und so richtig klar ist mir alles nicht ..
danke
-
mulo schrieb:
Gibt es irgendwo evtl ein eBook das mir den Einstieg in Borland erleichtert?
Ja:
http://info.borland.com/techpubs/bcppbuilder/v5/index.html
-
Auch zu empfehlen für den Einstieg sind die Seiten
http://bcbjournal.org/bcbcaq/
http://www.functionx.com/bcb/index.htmoder das eigene Tut dieser Seite
http://bcb-tutorial.c-plusplus.net/inhalt.html