AGB  ·  Datenschutz  ·  Impressum  







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

Abfangen von Fehleingaben

Ein Thema von happyaura · begonnen am 2. Apr 2006 · letzter Beitrag vom 2. Apr 2006
Antwort Antwort
Seite 1 von 2  1 2      
happyaura

Registriert seit: 12. Jan 2005
Ort: Hamburg
73 Beiträge
 
Delphi 6 Personal
 
#1

Abfangen von Fehleingaben

  Alt 2. Apr 2006, 15:29
Hallo,

ich möchte gerne in einem Edit-Feld Werte eingeben, und diese dann einem integer zuweisen. wie kann ich fehleingaben wie buchstaben oder ein leeres feld abfangen?
Delphi-Quellcode:
var edit : Tedit;
    i : integer;

[...]
i=strtoint(edit.text); // gibt fehler während der Laufzeit bei falschen eingaben...
[...]
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Abfangen von Fehleingaben

  Alt 2. Apr 2006, 15:34
Das hatten wir schon oft genug:

try
//Zuweisung
except
end;
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
BenjaminH

Registriert seit: 14. Okt 2004
Ort: Freiburg im Breisgau
713 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Abfangen von Fehleingaben

  Alt 2. Apr 2006, 15:38
Try-Except geht auch, aber Fehler garnicht erst enstehen zu lassen ist viel schöner:

Im OnKeyPress des Edits überprüfen, ob die eingegebene Taste(Key) erlaubt ist.
Falls sie nicht erlaubt ist einfach Key #0 zuweisen
Delphi-Quellcode:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
Var Zahlen:set of Char;
begin
   Zahlen:=['1','2','3','4','5','6','7','8','9','0'];
   If not (Key in Zahlen) Then
     Key:=#0;
end;
Benjamin
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#4

Re: Abfangen von Fehleingaben

  Alt 2. Apr 2006, 15:39
Vielleicht suchst Du die Funktion TryStrToInt aus der Unit SysUtils?

Gruß Hawkeye
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#5

Re: Abfangen von Fehleingaben

  Alt 2. Apr 2006, 15:41
@BenjaminH:
Was ist mit negativen Zahlen? Das Vorzeichen sollte natürlich nur vorne stehen...
  Mit Zitat antworten Zitat
Benutzerbild von juergen
juergen

Registriert seit: 10. Jan 2005
Ort: Bönen
1.174 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Abfangen von Fehleingaben

  Alt 2. Apr 2006, 15:48
Hallo,
ich würde direkt auch nur die EINGABE zulassen, welche schon die gültigen Werte enthält.
Suchwort wäre hier wohl -> OnKeyPress

Codebeispiel könnte für Zahlen wie folgt aussehen:
Delphi-Quellcode:
procedure TmyProg.Integer_Edit_Press(Sender: TObject;
  var Key: Char);

  //allgemeine Sperrung von allen Zeichen ausser
  //Backspace, Enter, Minus und alle Zahlen
  if not (key in [#8, #13, #45, #48..#57]) then
    key := #0;
  begin
    key := #0;
    Windows.Beep(2000, 250);
  end;
Das ganze ins OnKeyPress-Event hinterlgen und fertig.

//Edit-> ich war zu langsam
Jürgen
Indes sie forschten, röntgten, filmten, funkten, entstand von selbst die köstlichste Erfindung: der Umweg als die kürzeste Verbindung zwischen zwei Punkten. (Erich Kästner)
  Mit Zitat antworten Zitat
Benutzerbild von juergen
juergen

Registriert seit: 10. Jan 2005
Ort: Bönen
1.174 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Abfangen von Fehleingaben

  Alt 2. Apr 2006, 15:51
genau, das Minuszeichenn nur am Anfang zulassen könnte so gehen:
Delphi-Quellcode:
// das Minus darf nur am Anfang benutzt werden
    if (EDIT.selstart <> 0) and (key = #45) then
      key := #0;
Jürgen
Indes sie forschten, röntgten, filmten, funkten, entstand von selbst die köstlichste Erfindung: der Umweg als die kürzeste Verbindung zwischen zwei Punkten. (Erich Kästner)
  Mit Zitat antworten Zitat
happyaura

Registriert seit: 12. Jan 2005
Ort: Hamburg
73 Beiträge
 
Delphi 6 Personal
 
#8

Re: Abfangen von Fehleingaben

  Alt 2. Apr 2006, 16:09
vielen Dank für die antworten, die übrigen keycodes, die mir noch gefehlt haben, konnte ich über die suche finden.
Ist echt ein prima Forum hier, dreifacher daumen hoch!
  Mit Zitat antworten Zitat
happyaura

Registriert seit: 12. Jan 2005
Ort: Hamburg
73 Beiträge
 
Delphi 6 Personal
 
#9

Re: Abfangen von Fehleingaben

  Alt 2. Apr 2006, 16:18
oh, ich seh gerade, dass ich einen keycode doch nicht finden konnte, den für die entfernen taste. kann mir jemand damit aushelfen?


und wo ich schon frage, noch eine frage fürs verständnis. warum wird bei showmessage(inttostr(ord(key))); kein key für die ganzen "sondertasten" (enter, backspace, entfernen ect...) ausgegeben?
gruß Martin
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#10

Re: Abfangen von Fehleingaben

  Alt 2. Apr 2006, 16:19
Weil die keinen haben. Da musst du mit OnKeyDown und den VirtualKeys arbeiten. Da kannst du die aber auch nicht abfangen.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 16:21 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