Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Library: VCL / WinForms / Controls (https://www.delphipraxis.net/24-library-vcl-winforms-controls/)
-   -   Delphi Real-Edit, in dem man nur gültige Eintragungen machen kann (https://www.delphipraxis.net/26677-real-edit-dem-man-nur-gueltige-eintragungen-machen-kann.html)

Nikolas 27. Jul 2004 14:26


Real-Edit, in dem man nur gültige Eintragungen machen kann
 
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]


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:28 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz