Da die Frage, wie man in Edit nur Zahlen zulassen kann, recht häufig auftaucht und ich einen passenden Code mal für ein Projekt geschrieben hab, veröffentlich ich den mal hier:
Delphi-Quellcode:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
var
string1: string;
begin
string1:=edit1.text;
//allgemeine Sperrung von allen Zeichen ausser
//backspace, (-) , (,) und Zahlen
if not (key in[#8,#44,#45,#48..#57]) then key:=#0;
// das Minus darf nur am Anfang benutzt werden
if (edit1.selstart <> 0) and( key=#45) then key:=#0;
// nur ein Komma
if (pos(#44,string1)>0) and (key=#44) then key:=#0;
// kein Komma am Anfang
if (edit1.SelStart=0) and (key= #44) then key:=#0;
// Kein -,xxx
if (edit1.selstart=1) and
(string1[1]='-') and
(key=#44) then
key:=#0;
end;
Leider kann man sich nicht immer darauf verlassen dass eine strtofloat funktioniert, da
- auch nur ein Komma oder - eingegeben werden könnte
- Copy & Paste nicht abgefangen werden kann. Hier könnte man vielleicht Buchstaben rausnehmen, aber bei mehreren Kommata kann man nichts mehr machen.
[edit=Matze]Code formatiert. Mfg, Matze[/edit]
Erwarte das Beste und bereite dich auf das Schlimmste vor.