![]() |
nur zahlen im editfeld als eingabe zulassen?
hallo allerseits,
ich moechte in einem editfeld nur ziffern und den dezimalpunkt als eingabe zulassen. und zwar moechte ich es so haben, das er verbotene zeichen zum beispiel buchstaben erst gar nicht ins edit reinschreibt und nicht erst am ende beim enterdreucken prueft. welches ereignis kann man da nehmen. ich hab schon die jedis probiert, aber die floatedits gefallen mir nich. ich wuerde es gerne als menge erlaubter zeiten deklarieren z.B. ['0..9','.'] und alle anderen zeichen sollen nicht ins edit geschrieben werden koennen. bräuchte dazu mal n ansatz :) Richard |
Re: nur zahlen im editfeld als eingabe zulassen?
Die Forensuche und besonders die Suche in der Codelib, sollten da zum Erfolg führen.
|
Re: nur zahlen im editfeld als eingabe zulassen?
versuch mal den Maskedit (bei Komponenten unter "Zusätzlich"), da kann man Masken definieren.
ansonsten hat der TEdit ein Ereignis "onChange", das wird immer aufgerufen, wenn sich der Feldinhalt ändert. oder du suchst bei torry.net eine passende Komponente... |
Re: nur zahlen im editfeld als eingabe zulassen?
Zitat:
Das geht einfach mit nem ganz normalen TEdit. Im OnKeyPress prüfst du einfach nur ob die Taste eine von dir gewünschte ist, wenn nicht dann wird sie ignoriert. Hier hast du mal den Code, nur Zahlen & der "." werden akzeptiert:
Delphi-Quellcode:
Noch kurz zur Erklärung: #46 ist der Punkt, #48 bis #57 sind die Ziffern von 0 bis 9.
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin if not (key in[#08,#46,#48..#57]) then key:=#0; end; Die jeweiligen # - Werte kannst du z.B. aus jeder beliebigen ASCII-Code Tabelle ablesen. ;) //Edit: Noch #08 hinzugefügt, wenn du zum nächsten Feld springen willst, #13 ist die Entertaste. |
Re: nur zahlen im editfeld als eingabe zulassen?
Ergänzend dazu: vergiss #8 (Backspace) nicht.
|
Re: nur zahlen im editfeld als eingabe zulassen?
Zitat:
ich fügs mal in den obigen Code noch ein. :coder: |
Re: nur zahlen im editfeld als eingabe zulassen?
Hai Richard,
warum soll den der Punkt (.) im Editfeld eingegeben werden können? Wenn es für Floats ist solltest Du den ![]() |
Re: nur zahlen im editfeld als eingabe zulassen?
Falls du diese Funktion öfters brauchst lohnt sich eine Komponente:
TValidator Edit v.1.01 zu finden auf Torry.net Das können ganz simpel die Buchstaben/Zahlen angegeben werden, die entweder erwünscht oder nicht erwünscht sind. Gruß Pfoto |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:10 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz