Einzelnen Beitrag anzeigen

Benutzerbild von Martin K
Martin K

Registriert seit: 20. Okt 2005
919 Beiträge
 
Turbo Delphi für Win32
 
#16

Re: Nur Zahlen im TEdit, aber auch Kommazahlen

  Alt 15. Sep 2006, 18:00
Dann kann man aber immernoch Buchstaben oder sonst was eingeben und Copy&Paste wurde auch nicht berücksichtigt.

Für Copy&Paste muss man dann schon in OnChange überprüfen, z.B. so
Delphi-Quellcode:
procedure TForm1.Edit1Change(Sender: TObject);
var i: Integer; s: String;
begin
  if Edit1.Text <> 'then
  begin
    s := Edit1.Text;
    i := 1;
    while i <= Length(s) do
    begin
      if (not (s[i] in ['0'..'9', DecimalSeparator])) or
         ((s[i] = DecimalSeparator) and (Pos(DecimalSeparator, s) <> i)) then
        Delete(s, i, 1)
      else
        Inc(i);
    end;
    if s <> Edit1.Text then
      Edit1.Text := s;
  end;
end;
Ja, und dann kann man sich OnKeyPress wohl sparen...

//edit:
Code verbessert!
Mit den Menschen ist es wie mit Computern -
es gibt Nullen und Einsen.
  Mit Zitat antworten Zitat