Eingabe im Edit Feld OnTheFly überprüfen

29. August 2008 13:30

Hallo zusammen,

stehe gerade auch mal wieder auf dem Schlauch. Habe folgendes Problem :

Kann ich irgendwie in einem Editfeld direkt nach der Eingabe eines Zeichen abfangen ob dies ein bestimmtes Zeichen ist, z.B. eine Zahl, Buchstabe oder Sonderzeichen, und dieses ggf. direkt wieder löschen bzw. unterbinden ?

Notfalls hilft auch die Variante nach Eingabe des kompletten Wertes im Editfeld dieses zu überprüfen ob es nur aus Zahlen besteht. Die Propery Numeric hilft hier nicht so ganz da nach dem Error bei der Eingabe eines Wortes z.B. das Feld nicht geleert oder zurückgesetzt wird.

Hoffe ihr könnt mir da weiterhelfen.

Besten Dank im Vorraus.

Gruß
Chris

Re: Eingabe im Edit Feld OnTheFly überprüfen

29. August 2008 13:54

CBT hat geschrieben:Kann ich irgendwie in einem Editfeld direkt nach der Eingabe eines Zeichen abfangen ob dies ein bestimmtes Zeichen ist, z.B. eine Zahl, Buchstabe oder Sonderzeichen, und dieses ggf. direkt wieder löschen bzw. unterbinden ?

Wenn du möchtest, dass nur Zahlen eingegeben werden, sollte das hinter liegende Tabellenfeld oder die Variable eine Variable vom Typ integer (Ganzzahlen) oder decimal (Gleitkommazahlen) sein. So hat der Benutzer erst gar nicht die Möglichkeit, in das Feld etwas anderes einzutragen, ohne eine Fehlermeldung zu erhalten. Allerdings wird der eingegebene Wert auch nicht sofort gelöscht.

Auch sinnvoll ist die Feldeigenschaften ValuesAllowed und CharactersAllowed (siehe Onlinehilfe). Die leisten genau das, was du brauchst. Aber auch hier: Werte werden nicht gelöscht. Ist dir das Löschen denn so wichtig?

Re: Eingabe im Edit Feld OnTheFly überprüfen

29. August 2008 14:12

Du könntest alle nichtnummerischen Zeichen aus dem eingegebenen Text entfernen und nur den nummerischen Teil übriglassen:
Code:
DeinFeld := DELCHR(DeinFeld,'=',DELCHR(DeinFeld,'=','0123456789'));

Beachte, dass "DeinFeld" dreimal in der Zeile auftaucht.

Re: Eingabe im Edit Feld OnTheFly überprüfen

29. August 2008 14:12

Das Problem ist folgendes : Gültig als Eingabe sind nur Zahlen. Wenn der User jetzt ein Wort eingibt kommt eine Fehlermeldung. Er bestätigt diese mit Ok. Das eingegebene Wort steht immer noch im Feld. Er kann auch nichts mehr machen bis er seine Eingabe korriegiert AUSSER er klickt auf den LookUp im Feld. In aufgehen Fenster selektiert er einen Datensatz welcher an die erste Form dann übergeben wird und hier knallt es dann da im Eingabefeld immer noch das Wort drin steht, er aber einen gültigen Datensatz per LookUp übergeben hat ... Ich schau mir deine Lösungsvorschläge mal an. Schonmal Danke ^^

Re: Eingabe im Edit Feld OnTheFly überprüfen

29. August 2008 15:01

Timo Lässer hat geschrieben:Du könntest alle nichtnummerischen Zeichen aus dem eingegebenen Text entfernen und nur den nummerischen Teil übriglassen:
Code:
DeinFeld := DELCHR(DeinFeld,'=',DELCHR(DeinFeld,'=','0123456789'));

Das nenn ich mal elegant :)

Re: Eingabe im Edit Feld OnTheFly überprüfen

29. August 2008 15:47

CBT hat geschrieben:Er kann auch nichts mehr machen bis er seine Eingabe korriegiert AUSSER er klickt auf den LookUp im Feld.


Ist zwar wahrscheinlich nicht was du suchst/meinst, aber er müsste auch ESC drücken können, dann wäre seine Eingabe wieder weg.

Re: Eingabe im Edit Feld OnTheFly überprüfen

29. August 2008 15:50

Das stimmt schon ^^ Aber ich kenne unsere Kunden. Die drücken dann mal hier und da rum und gerade der LookUp Button verleiht zum Klicken und wenn sie auf den Klicken bevor sie ESC gedrückt haben, haben wir das Problem ^^

Re: Eingabe im Edit Feld OnTheFly überprüfen

10. September 2008 17:06

Hallo,

eigentlich kann man das auf OnInputChange oder OnValidate des Feldes (im Form) machen. So wie von Timo beschrieben.

LG Jens