AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Prüfen ob (Ganz-)Zahl

Ein Thema von chris_82 · begonnen am 18. Dez 2003 · letzter Beitrag vom 19. Dez 2003
Antwort Antwort
Seite 1 von 2  1 2      
chris_82

Registriert seit: 26. Aug 2003
112 Beiträge
 
Delphi 6 Enterprise
 
#1

Prüfen ob (Ganz-)Zahl

  Alt 18. Dez 2003, 22:27
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.
....oop und nun...??
http://www.sengewald.info
  Mit Zitat antworten Zitat
BungeeBug

Registriert seit: 19. Dez 2002
Ort: zuhause?!
227 Beiträge
 
Delphi 6 Personal
 
#2

Re: Prüfen ob (Ganz-)Zahl

  Alt 18. Dez 2003, 22:37
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;
MfG BungeeBug
Wer andern eine Grube gräbt sollte auf Gasleitungen achten!!!!
  Mit Zitat antworten Zitat
chris_82

Registriert seit: 26. Aug 2003
112 Beiträge
 
Delphi 6 Enterprise
 
#3

Re: Prüfen ob (Ganz-)Zahl

  Alt 18. Dez 2003, 22:41
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?
....oop und nun...??
http://www.sengewald.info
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#4

Re: Prüfen ob (Ganz-)Zahl

  Alt 18. Dez 2003, 22:46
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...
  Mit Zitat antworten Zitat
Highman72

Registriert seit: 19. Dez 2003
Ort: Bad Schwalbach
4 Beiträge
 
Delphi 5 Professional
 
#5

Re: Prüfen ob (Ganz-)Zahl

  Alt 19. Dez 2003, 02:48
Hi!

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!
  Mit Zitat antworten Zitat
MikeS

Registriert seit: 3. Mai 2003
Ort: München
157 Beiträge
 
Delphi 7 Professional
 
#6

Re: Prüfen ob (Ganz-)Zahl

  Alt 19. Dez 2003, 06:53
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
Mike Schröder
  Mit Zitat antworten Zitat
Benutzerbild von Tonic1024
Tonic1024

Registriert seit: 10. Sep 2003
Ort: Cuxhaven
559 Beiträge
 
RAD-Studio 2009 Ent
 
#7

Re: Prüfen ob (Ganz-)Zahl

  Alt 19. Dez 2003, 09:19
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

Delphi-Quellcode:
function IsInteger(value : String): Boolean;
begin
  Result:=true;
  try
    StrToInt(value)
  except
    Result:=false;
  end;
end;
Bis denne...
Der frühe Vogel fängt den Wurm, richtig.
Aber wird nicht auch der frühe Wurm vom Vogel gefressen?
  Mit Zitat antworten Zitat
Tyrael Y.

Registriert seit: 28. Jul 2003
Ort: Stuttgart
1.093 Beiträge
 
Delphi 2007 Professional
 
#8

Re: Prüfen ob (Ganz-)Zahl

  Alt 19. Dez 2003, 09:26
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ß
Levent Yildirim
Erzeugung von Icons aus Bildern:IconLev
  Mit Zitat antworten Zitat
DevStar
(Gast)

n/a Beiträge
 
#9

Re: Prüfen ob (Ganz-)Zahl

  Alt 19. Dez 2003, 15:31
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
  Mit Zitat antworten Zitat
Tyrael Y.

Registriert seit: 28. Jul 2003
Ort: Stuttgart
1.093 Beiträge
 
Delphi 2007 Professional
 
#10

Re: Prüfen ob (Ganz-)Zahl

  Alt 19. Dez 2003, 15:46
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ß
Levent Yildirim
Erzeugung von Icons aus Bildern:IconLev
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:16 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