AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Zahleneingabe in Edit verhindern ?

Ein Thema von Kunoishi · begonnen am 26. Jan 2010 · letzter Beitrag vom 26. Jan 2010
Antwort Antwort
Kunoishi

Registriert seit: 26. Dez 2002
Ort: Berlin
140 Beiträge
 
Delphi 5 Standard
 
#1

Zahleneingabe in Edit verhindern ?

  Alt 26. Jan 2010, 15:50
ich möchte verhindern, dass in meinem Editfeld Zahlen eingegeben werden.

dazu habe ich schon eine Prozedur (mit eurer Hilfe) 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;
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.033 Beiträge
 
Delphi 12 Athens
 
#2

Re: Zahleneingabe in Edit verhindern ?

  Alt 26. Jan 2010, 16:02
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:
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;
Versuche so mal mitten in dem Text zu schreiben.
Bei dir wird ja der Cursor jedesmal auf das Textende gesetzt.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Kunoishi

Registriert seit: 26. Dez 2002
Ort: Berlin
140 Beiträge
 
Delphi 5 Standard
 
#3

Re: Zahleneingabe in Edit verhindern ?

  Alt 26. Jan 2010, 16:09
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.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.033 Beiträge
 
Delphi 12 Athens
 
#4

Re: Zahleneingabe in Edit verhindern ?

  Alt 26. Jan 2010, 16:13
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.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von ChrisE
ChrisE

Registriert seit: 15. Feb 2006
Ort: Hechingen
504 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#5

Re: Zahleneingabe in Edit verhindern ?

  Alt 26. Jan 2010, 16:27
Zitat von himitsu:
...
Delphi-Quellcode:
procedure TForm1.Edit1Change(Sender: TObject);
var s: String;
  i: Integer;
begin
  s := TEdit(Sender).Text;
  for i := Length(s) downto 1 do
    if s[1] in ['0'..'9'] then // <------- s[i] oder s[1]?
      Delete(s, i, 1);
//...
end;
//...
...
Sollte es an der Stelle nicht s[i] heißen?
Christian E.
Es gibt 10 Arten von Menschen, die die Binär lesen können und die die es nicht können

Delphi programming rules
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.033 Beiträge
 
Delphi 12 Athens
 
#6

Re: Zahleneingabe in Edit verhindern ?

  Alt 26. Jan 2010, 16:30
Zitat von ChrisE:
Sollte es an der Stelle nicht s[i] heißen?
wäre angebracht
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von ChrisE
ChrisE

Registriert seit: 15. Feb 2006
Ort: Hechingen
504 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#7

Re: Zahleneingabe in Edit verhindern ?

  Alt 26. Jan 2010, 16:33
Zitat von himitsu:
wäre angebracht
Aber trotzdem wieder eine sehr gute Hilfe deinerseits
Christian E.
Es gibt 10 Arten von Menschen, die die Binär lesen können und die die es nicht können

Delphi programming rules
  Mit Zitat antworten Zitat
Benutzerbild von Fussel9
Fussel9

Registriert seit: 25. Mai 2009
322 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: Zahleneingabe in Edit verhindern ?

  Alt 26. Jan 2010, 17:07
...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;
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.685 Beiträge
 
Delphi 2007 Enterprise
 
#9

Re: Zahleneingabe in Edit verhindern ?

  Alt 26. Jan 2010, 17:13
'Rt7u90xK_moo' enthält Zahlen, würde aber nicht umwandelbar sein. Das Vorgehen würde nicht zum Problem passen.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.033 Beiträge
 
Delphi 12 Athens
 
#10

Re: Zahleneingabe in Edit verhindern ?

  Alt 26. Jan 2010, 17:15
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
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:18 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz