Thema: Delphi Überprüfen auf Zahl

Einzelnen Beitrag anzeigen

Benutzerbild von juergen
juergen

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

Re: Überprüfen auf Zahl

  Alt 15. Nov 2005, 19:36
Hallo ByStones2,
wenn du eine Fehleingabe verhindern willst, würde ich folgendes empfehlen:
Delphi-Quellcode:
procedure TMyProg.InputAKeyPress(Sender: TObject;
  var Key: Char);
var
  string1: string;
begin
  string1:=Edit1.text;
if key in [',','.',':'] then key := DecimalSeparator;
 
  if not (key in[#8,#13,#45,#44,#48..#57]) then key:=#0; {allgemeine Sperrung von allen Zeichen ausser
                                                          backspace, Enter, (-) , (,) , (.) , (:) und alle Zahlen }
  
  
if (Edit1.selstart <> 0) and( key=#45) then key:=#0; // das Minus darf nur am Anfang benutzt werden

  if (pos(#44,string1)>0) and (key=#44) then key:=#0; // nur ein Komma

  if (Edit1.SelStart=0) and (key= #44) then key:=#0; // kein Komma am Anfang

  if (Edit1.selstart=1) and // Kein Minus und anschließend ein Komma
     (string1[1]='-') and
     (key=#44) then
     key:=#0;
       if not (key in[#8,#13,#45,#44,#48..#57]) then begin
       Key:=#0;
       Windows.Beep(2500,80) ; // anstelle einer Fehlermeldung ein kurzer Beep?????
       end;
  end;
Das ganze dann dem OnKeyPress Ereignis zuordnen->fertig.
Fehlermeldungen können ganz schön nerven
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