Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Eingabe von Buchstaben in Editfelder verhindern (https://www.delphipraxis.net/121967-eingabe-von-buchstaben-editfelder-verhindern.html)

delphidummy 7. Okt 2008 18:01


Eingabe von Buchstaben in Editfelder verhindern
 
Hi!

Wir brauchen dringend Hilfe und sind 2 absolute Anfängerinnen :coder2: , wir haben bereits die Eingabe von bestimmten Werten ausgeschlossen, allerdings wissen wir nicht, wie man die Eingabe von Buchstaben in die 3 Editfelder verhindert.
Delphi-Quellcode:
procedure TForm1.ButtonBerechnenClick(Sender: TObject);
var
  a: Integer;
begin
// Ungültige Eingaben werden ausgeschlossen


if (editpalettenlast.text='')or(strtoint(editpalettenlast.text)>1000) then
            begin
              showmessage('Ungültiger Wert für die Palettenlast!');
 end else
 if (editlagerhoehe.text='')or(strtoint(editlagerhoehe.text)>15) or (editlagerhoehe.text='#13') then
        begin
          showmessage('Ungültiger Wert für die Lagerhoehe !');
        end else
if (editregallaenge.text='')or(strtoint(editregallaenge.text)>75)or (editregallaenge.text='#13')
    then
    begin
      showmessage('Ungültiger Wert für die Lagerlänge !');
    end else
            begin
--> dann folgt unsere Rechnung

wir würden den Befehl gerne direkt mit in den bereits vorhandenen Text einbauen.

Kann uns da irgendjemand helfen????


LG

[edit=Sharky]Delphi-Tags eingefügt. Mfg, Sharky[/edit]

BullsEye 7. Okt 2008 18:03

Re: Eingabe von Buchstaben in Editfelder verhindern
 
ganz einfach:

Artikel

Delphi-Quellcode:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
     If not(key in [#48..#57,#8])
   then key := #0;
end;

// #8 ist Backspace
Der Code ist auch viel kürzer und du verhinderst somit von Anfang an, das dort ein Buchstabe eingeben werden kann!

jokerfacehro 7. Okt 2008 18:11

Re: Eingabe von Buchstaben in Editfelder verhindern
 
überprüf trotzdem nochma den inhalt, weil man noch per copy&paste buchstaben reinbekommt

TonyR 7. Okt 2008 18:35

Re: Eingabe von Buchstaben in Editfelder verhindern
 
@jokerface - ...Oder man weist dem Edit ein leeres Popup-Menü zu =)

s.h.a.r.k 7. Okt 2008 19:47

Re: Eingabe von Buchstaben in Editfelder verhindern
 
Zitat:

Zitat von TonyR
@jokerface - ...Oder man weist dem Edit ein leeres Popup-Menü zu =)

das wird nicht funktionieren, da man mit strg+v immer noch einfügen kann ;)

aber such doch mal im forum, da hab ich schon eine passende komponente offeriert, die aber noch in ein paar stellen fehlerhaft ist ;) aber dort kannst dir anhaltspunkte einholen!

TonyR 7. Okt 2008 21:05

Re: Eingabe von Buchstaben in Editfelder verhindern
 
Zitat:

Zitat von s.h.a.r.k
Zitat:

Zitat von TonyR
@jokerface - ...Oder man weist dem Edit ein leeres Popup-Menü zu =)

das wird nicht funktionieren, da man mit strg+v immer noch einfügen kann ;) ...

Wozu haben wir mit der Anweisung im Post #2 sämtliche Buchstabeneingaben verbannt???
;) ;) ;)

PS: ... und die taste Strg ja auch.

Sir Rufo 7. Okt 2008 21:46

Re: Eingabe von Buchstaben in Editfelder verhindern
 
Also die Überprüfung würde ich wie folgt schreiben (kürzer und knackiger und fehlertoleranter).

StrToIntDef( Str, Value ) macht eigentlich das gleiche wie StrToInt( Str ), nur dass bei StrToIntDef, wenn in Str keine brauchbare Ziffern stehen (also z.B. Buchstaben), dann wird als Ergebnis Value ausgegeben.

Delphi-Quellcode:
procedure TForm1.ButtonBerechnenClick(Sender: TObject);
var
  a : Integer;
begin
  // Ungültige Eingaben werden ausgeschlossen

  if StrToIntDef( EditPalettenLast.Text, 1001 ) > 1000 ) then
    ShowMessage( 'Ungültiger Wert für die Palettenlast!' )
  else  
    if StrToIntDef( EditLagerHoehe.Text, 16 ) > 15 then
      ShowMessage( 'Ungültiger Wert für die Lagerhoehe !' )
    else
      if StrToIntDef( EditRegalLaenge.Text, 76 ) > 75 then
        ShowMessage( 'Ungültiger Wert für die Lagerlänge !' )
      else
      begin

        --> dann folgt unsere Rechnung
cu

Oliver

delphidummy 8. Okt 2008 20:41

Re: Eingabe von Buchstaben in Editfelder verhindern
 
Dankeschön!! Das funktioniert jetzt schonmal :-D


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:10 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