![]() |
Prüfen ob (Ganz-)Zahl
Wie prüfe ich bei oder nach der Eingabe in ein Editfeld, ob auch wirklich nur eine Zahl eingegeben wurde, welche auch keine Nachkommastellen habe sollte.
|
Re: Prüfen ob (Ganz-)Zahl
Hi,
recht einfach.
Delphi-Quellcode:
IF (POS('.',Edit1.Text) OR POS(',',Edit1.Text)) <> 0 THEN BEGIN ShowMessage('zahl mit Nachkommastelle!'); END ELSE BEGIN ShowMessage('Keine Nachkommastelle!'); END; |
Re: Prüfen ob (Ganz-)Zahl
ok, so prüf ich ob irgendwo ein komma oder punkt ist, so würde ich rausbekommen ob es sich um ein ganzzahl oder nicht handelt, aber wie bekomme ich erst mal raus, bzw. wie verhindere ich, dass es sich auch um eine zahl handelt, bzw. das text eingegeben wird?
|
Re: Prüfen ob (Ganz-)Zahl
So müsste es eigentlich klappen.
Delphi-Quellcode:
For i := 1 to Length(Edit1.Text) Do
If not(Edit1.Text[i] in [#48..#57]) Then Irgendwas... |
Re: Prüfen ob (Ganz-)Zahl
Hi!
:angle: Verhindere doch einfach die Eingabe anderer Tasten außer Ziffern und Tab/Enter usw. Dann hast Du garantiert nur Ganzzahlen im Feld! Schöne Grüße, Jens Eppler Bad Schwalbach PS: Schöne Grüße nach Sömmerda! |
Re: Prüfen ob (Ganz-)Zahl
Moin
Mit dem Befehl val kannst du einen String in eine Zahl umwandeln!
Code:
wenn du zahl als integer deklarierst dann ist code immer dann null wenn dein String eine Zahl ist... var zahl: integer; code: integer; begin val(edit1.text, zahl, code); ... die dem Typ Integer entspricht!
Code:
Wenn du Zahl als z.B. real deklariest dann ist code auch dann null wenn z.b. "1.0" in deinem Edit steht!... var zahl: real; code: integer; begin val(edit1.text, zahl, code); ... => mit code kannst du prüfen ob die Umwandlung erfolgreich war und wenn Sie es war dann stand eine (Ganz-)Zahl in deinem Edit |
Re: Prüfen ob (Ganz-)Zahl
Moin...
Die Variante von MikeS finde ich gut... Der Auswahl-halber poste ich mal was ich immer benutze. Zugegeben nicht ganz so elegant, aber bewährt und Kampferprobt :wink:
Delphi-Quellcode:
Bis denne...
function IsInteger(value : String): Boolean;
begin Result:=true; try StrToInt(value) except Result:=false; end; end; |
Re: Prüfen ob (Ganz-)Zahl
Wenn sowieso nur Ganzahlen einegegeben werden sollen
verwende am Besten den Vorschlag von Highman, dann brauchst du auch nix zu prüfen wenn auch was anderes eingegeben werden darf in das Editfeld und es nur um die Prüfung geht, sind die anderen Varianten sinnvoll Gruß |
Re: Prüfen ob (Ganz-)Zahl
Hi,
falsche Eingaben abzufangen dürfte schwer werden. Stichwort Zwischenablage, Paste. Die einzige vernünftige Möglichkeit ist die von MikeS. Die von Tonic1024 funktioniert zwar auch, ist aber bei ausgelöster Exception bedeutend langsamer. Durch Exceptions können durchaus mal eine halbe Million Taktzyklen verbraten werden, von daher sollte man sie - falls möglich - vermeiden. MfG DevStar |
Re: Prüfen ob (Ganz-)Zahl
Zitat:
Delphi-Quellcode:
Wieso soll das schwer sein? Oder ist dir das zu schwer?
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin if not(key in ['0'..'9']) then key := #0; end; Gruß |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:23 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz