Einzelnen Beitrag anzeigen

Benutzerbild von Nikolas
Nikolas

Registriert seit: 28. Jul 2003
1.528 Beiträge
 
Delphi 2005 Personal
 
#1

Real-Edit, in dem man nur gültige Eintragungen machen kann

  Alt 27. Jul 2004, 14:26
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.
  Mit Zitat antworten Zitat