Hi
Wie kann ich bei einem TextCtl machen, dass man nur Zahlen eingeben kann? Kann man irgendwo eine Eingabe-Maske angeben?
Würde gerne etwas im Format "### ### ## ##" haben.
und EVT_TEXT wird erst ausgelöst wenn der Buchstabe schon hinzugefügt wurde.
Gruss
TextCtl nur Zahlen eingeben
würde mir spontan einfallen ein irgend ein KEY Event zu verwenden und damit unzulässige Eingaben einfach zu ignorieren.
Algorithmus:
1. Key Event an TxtCtrl gebunden
2. Bei zB KeyUp on TxtCtrl überprüfe Zeichen
3. Wenn zeichen unzulässig lösche Zeichen
...
Algorithmus:
1. Key Event an TxtCtrl gebunden
2. Bei zB KeyUp on TxtCtrl überprüfe Zeichen
3. Wenn zeichen unzulässig lösche Zeichen
...
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hi!Buell hat geschrieben:würde mir spontan einfallen ein irgend ein KEY Event zu verwenden und damit unzulässige Eingaben einfach zu ignorieren.
Falls dir das zu wenig ist, dann sieh dir doch mal die Beispiele der "MaskedEditControls" aus der wxPython-Demo an. Vielleicht ist das etwas für dich.
lg
Gerold
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
-
- User
- Beiträge: 773
- Registriert: Mittwoch 5. November 2003, 18:06
- Wohnort: Schweiz
- Kontaktdaten:
Hi
Ja hatte den EVT_KEY_DOWN event nicht gesehen.
Hier kleines Codesnippet:
Und halt den EVT_KEY_DOWN an das TextCtl binden.
Gruss
*edit*
mhh genau die maskedcontrol hab ich gesucht, hab ich nicht gesehen.
Funktioniert super mit der Mask '### ### ## ##'
Ja hatte den EVT_KEY_DOWN event nicht gesehen.
Hier kleines Codesnippet:
Code: Alles auswählen
def keyDown(self, event):
if (48 <= event.KeyCode() <= 57 or 326 <= event.KeyCode() <= 335)and(not event.ShiftDown())and(not event.AltDown())and(not event.ControlDown()):
event.Skip()
Gruss
*edit*
mhh genau die maskedcontrol hab ich gesucht, hab ich nicht gesehen.
Funktioniert super mit der Mask '### ### ## ##'
Weiss nicht ob du noch das Problem hast aber wie wäre es mit einem IntCtrl?
joa nää python is toll :D