![]() |
Zahleneingabe in Edit verhindern ?
ich möchte verhindern, dass in meinem Editfeld Zahlen eingegeben werden.
dazu habe ich schon eine Prozedur (mit eurer Hilfe) :P worin in meinem Editfeld der erste Buchstabe grundsätzlich in Großbuchstaben geschrieben wird. Dieses würde ich jetzt gerne erweitern, dass in diesem Editfeld eben keine Zahlen sondern nur Buchstaben eingetragen werden können
Delphi-Quellcode:
procedure TForm.EditTNameChange(Sender: TObject);
var s: string; begin if Length(EditTName.Text)>0 Then begin s:= EditTName.Text; s[1] := AnsiUpperCase(s)[1]; EditTName.Text:=s; EditTName.SelStart := Length(EditTName.Text); end; end; |
Re: Zahleneingabe in Edit verhindern ?
Lösche doch einfach alles Unerwünschte raus?
Filtere sowas besser schon in OnKeyPress raus, denn dieses macht die Bediehung viel einfacher. OnChange ist nur noch für Fälle, wie das Kopieren/Einfügen, welche OnKeyPress nicht abdeckt.
Delphi-Quellcode:
Versuche so mal mitten in dem Text zu schreiben. :zwinker:
procedure TForm1.Edit1Change(Sender: TObject);
var s: String; i: Integer; begin s := TEdit(Sender).Text; for i := Length(s) downto 1 do if s[i] in ['0'..'9'] then Delete(s, i, 1); if s <> '' then s[1] := AnsiUpperCase(s)[1]; //if TEdit(Sender).Text <> s then {das sollte in .Text schon drin sein} TEdit(Sender).Text := s; end; procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); begin if TEdit(Sender).SelStart = 0 then Key := AnsiUpperCase(Key)[1]; if Key in ['0'..'9'] then Key := #0; end; Bei dir wird ja der Cursor jedesmal auf das Textende gesetzt. |
Re: Zahleneingabe in Edit verhindern ?
das ist natürlich auch eine Idee,
D A N K E Ich merke es immer wieder, gerade bei euch hier im Forum, man bekommt ständig neue Denkanstösse und Möglichkeiten aufgestellt. ich finde das Klasse. Ich werde es gleich mal ausprobieren. |
Re: Zahleneingabe in Edit verhindern ?
Bitte
Ach ja, ich vergaß zu erwähnen: Bei OnKeyPress, sowie OnKeyDown und Co. steht die 0, bzw. #0 für "Nichts". Also, wenn man dort Key auf 0 setzt, dann wird die Taste verworfen und kommt nicht im Edit an. |
Re: Zahleneingabe in Edit verhindern ?
Zitat:
|
Re: Zahleneingabe in Edit verhindern ?
Zitat:
|
Re: Zahleneingabe in Edit verhindern ?
Zitat:
|
Re: Zahleneingabe in Edit verhindern ?
...wäre folgendes nicht einfacher? :
StrToIntDEF ? dann könnte man eine if then else prüfung vornehmen... if not (StrToIntDEF(EEingabe.Text,12345678987654321) = 12345678987654321) then begin ... ... ... end else begin ... ... ... end; |
Re: Zahleneingabe in Edit verhindern ?
'Rt7u90xK_moo' enthält Zahlen, würde aber nicht umwandelbar sein. Das Vorgehen würde nicht zum Problem passen.
|
Re: Zahleneingabe in Edit verhindern ?
Wollt ich auch grad erwähnen ... dieses würde genau für den entgegengesetzen Fall eher zutreffen.
"nur Zahlen" <> not "keine Zahlen" Wobei hier wohl eher "keine Ziffern" anstatt "keine Zahlen" gemeint ist. PS: TryStrToInt wäre angebrachter gewesen, selbst wenn es auch nicht zum Thema gepaßt hätte :angel: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:16 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