Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Prüfen ob (Ganz-)Zahl (https://www.delphipraxis.net/13459-pruefen-ob-ganz-zahl.html)

chris_82 18. Dez 2003 21:27


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.

BungeeBug 18. Dez 2003 21:37

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;

chris_82 18. Dez 2003 21:41

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?

Robert_G 18. Dez 2003 21:46

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...

Highman72 19. Dez 2003 01:48

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!

MikeS 19. Dez 2003 05:53

Re: Prüfen ob (Ganz-)Zahl
 
Moin

Mit dem Befehl val kannst du einen String in eine Zahl umwandeln!

Code:
 
...
var zahl: integer;
    code: integer;
begin
val(edit1.text, zahl, code);
...
wenn du zahl als integer deklarierst dann ist code immer dann null wenn dein String eine Zahl ist
die dem Typ Integer entspricht!

Code:
 
...
var zahl: real;
    code: integer;
begin
val(edit1.text, zahl, code);
...
Wenn du Zahl als z.B. real deklariest dann ist code auch dann null wenn z.b. "1.0" in deinem Edit steht!

=> mit code kannst du prüfen ob die Umwandlung erfolgreich war und wenn Sie es war dann stand eine
(Ganz-)Zahl in deinem Edit

Tonic1024 19. Dez 2003 08:19

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:
function IsInteger(value : String): Boolean;
begin    
  Result:=true;
  try
    StrToInt(value)
  except
    Result:=false;
  end;
end;
Bis denne...

Tyrael Y. 19. Dez 2003 08:26

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ß

DevStar 19. Dez 2003 14:31

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

Tyrael Y. 19. Dez 2003 14:46

Re: Prüfen ob (Ganz-)Zahl
 
Zitat:

falsche Eingaben abzufangen dürfte schwer werden. Stichwort Zwischenablage, Paste.
Delphi-Quellcode:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
   if not(key in ['0'..'9']) then
      key := #0;
end;
Wieso soll das schwer sein? Oder ist dir das zu schwer?

Gruß


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:56 Uhr.
Seite 1 von 2  1 2      

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