Registriert seit: 10. Jan 2005
Ort: Bönen
1.176 Beiträge
Delphi 11 Alexandria
|
Re: Überprüfen auf Zahl
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)
|
|
Zitat
|