![]() |
in textbox nur zahlen, enter, esc und tab zulassen
Wie kann ich das handeln, das ich in einer Textbox nur Enter, Esc (mit zurücksetzen des Textes) und Tab (ebenfalls mit zurücksetzen des Textes) zulassen kann. Wichtig ist mir, das bei der Taste enter noch eine weitere Procedure ausgeführt wird.
|
Re: in textbox nur zahlen, enter, esc und tab zulassen
HallO!
Ich hab heute gerade so eine Ähnliche Frage gestellt und mit wurde eine sher gute Lösung angeboten: Reguläre Ausdrücke. ;) Grüße Faux |
Re: in textbox nur zahlen, enter, esc und tab zulassen
Hi Taladan,
Delphi-Quellcode:
MFG Lucius.
procedure THaupt.Edit1Change(Sender: TObject);
var Key:Char; i:integer; s:string; begin // allow only numbers and backspace// s := ''; for i:=1 to Length( TEdit(Sender).Text ) do begin Key := TEdit(Sender).Text[i]; if not( Key in ['0'..'9', #8] ) then Key := #0 else s := s + Key; end; TEdit(Sender).Text := s; end; |
Re: in textbox nur zahlen, enter, esc und tab zulassen
@Lucius. Danke. Dies ist jedoch ein Code der in .Net unbrauchbaur ist. Aus win32 kenne ich ihn schon.
@faux. Was sind reguläre Ausdrücke? |
Re: in textbox nur zahlen, enter, esc und tab zulassen
|
Re: in textbox nur zahlen, enter, esc und tab zulassen
Zitat:
Alleine das T in TRegExp sollte klarmachen, dass es native Delphi und nicht .Net ist. In .Net bekommst du im namespace System.Text.RegularExpressions alles was das Herz begehrt. ;) |
Re: in textbox nur zahlen, enter, esc und tab zulassen
habs lösen können
Delphi-Quellcode:
procedure TNavigation.TextBox1_KeyPress(sender: System.Object; e: System.Windows.Forms.KeyPressEventArgs);
begin if not( e.KeyChar in ['0'..'9']) then begin if e.KeyChar = #13 then begin // mach was end; e.Handled := true; end; end; |
Re: in textbox nur zahlen, enter, esc und tab zulassen
Zitat:
Ich hatte das Problem in C#, deswegen Reguläre Ausdrücke. Aber in Delphi.NET geht's mit SET's natürlich auch. Falls du trotzdem interesse hast, dein Wissen um Reguläre Ausdrücke zu erweitern: ;)
Code:
if (! (new Regex('[0-9\n]', RegexOptions.IgnoreCase).IsMatch(e.KeyChar))
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:11 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 by Thomas Breitkreuz