![]() |
Buchstaben verhindern!
Hi @ all!
Ich möchte gerne verhindern, dass ich in ein Edit Buchstaben schreiben kann. Entweder soll das überhaupt nicht funktionieren (= keine Reaktion beim tippen auf den Buchstaben) oder es soll eine Fehlermessage kommen! Ich weiss, dass das bei Sql mit "Is not numeric" geht, aber bei Delphi?! kA Kann mir jemand helfen!? |
im OnKeyPress des ereignesses fragst du einfach ab, welcher buchstabe gedrückt wurde.
wenn der buchstabe nicht benuzt werden soll, weist du einfach
Delphi-Quellcode:
zu.
key:= nil;
du könntest auch mit einer maskedit arbeiten. wie das funktioniert weiß ich allerdings net so genau |
Hallo,
Delphi-Quellcode:
Das ganze schreibst Du im OnKeyPress des Edit-Feldes.
if not (Key in ['a'..'z', 'A'..'Z']) then
Key := #0; Grüsse, Daniel :hi: |
Zitat:
damit kann ich aber immernoch buchstaben eingeben, oder sollte ich da mal statt Zitat:
|
Zitat:
Und wenn dann eher 1..0! Und Dein ,. Grüsse, Daniel :hi: |
Delphi-Quellcode:
Gruß
If not(key in [#48..#57,#8])
then key := #0; |
danke, das funktioniert super!
|
Delphi-Quellcode:
procedure TForm1.Edit1KeyPress(sender: TObject; var key: Char);
begin if not (key in [#8, #9, #48 .. #57]) then key:=#0; end; Hiermit kann man die Eingabe auf nur Zahlen beschränken. Die Tabulator und Entertaste wird auch noch frei gelassen. mfg :coder: |
Das ist ja genau die gleiche Lösung wie meine, mit dem Zusatz der Entertaste, nur was will man mit der Entertaste? Und #8 ist Return und nicht Tabulator!!!
Gruß |
Hi Thomas,
Zitat:
Grüsse, Daniel :hi: |
Jupp, #8 ist Backspace, #9 ist Tabulator und #13 ist Return, oder war das jetzt #10. Bring #10 und #13 immer durcheinander.
|
Zitat:
#13 ist CR = Carriage Return Im "prinzip" alles das gleiche. Wenn Du was in einer Message mit Umbruch schreibst und umbrechen willst, dann solltest Du unter Windows immer CRLF benutzen. also #13#10 zusammen!!! Grüsse, Daniel :hi: |
#10 ist Line-Feed #13 Return oder Enter, aber was wollt ihr damit ? Aus dem Edit Feld kommt man standardmäßig nur mit Tab raus.
Gruß Hansa |
Zitat:
Aber man könnte durchaus Enter abfragen und bei Druck, den Fokus ins nächste Edit setzen, somit durchaus brauchbar. Und auch sinnvoll mMn.. Grüsse, Daniel :hi: |
Zitat:
Delphi-Quellcode:
meiner Meinung nach, die einzig sinnvolle! Enter und der Kram muß da drin außen vor bleiben!
If not(key in [#48..#57,#8])
then key := #0; Gruß |
Zitat:
Grüsse, Daniel :hi: |
Danke, damit ist das jetzt auch geklärt :wink:
Gruß |
Das meinte ich. Notfalls hier weitermachen,falls nötig, denn da fängt alles wieder an :
![]() Gruß Hansa |
hi folks! :)
wieso machts denn das so kompliziert? wenn keine buchstaben eingetippt werden sollen, dann reicht doch:
Code:
mfg, stefan
if (Key in ['a'..'z', 'A'..'Z']) then
Key := #0; |
Hallo,
Zitat:
Aber bei "if not (Key in ['1'..'0']) then" hast Du dann einfach alles weg, Buchstaben, sowie Sonderzeichen. Somit ist die Auflistung viel kürzer. Grüsse, Daniel :hi: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:40 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