AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Prüfen ob Edit.Text einen Integer-Wert enthält
Thema durchsuchen
Ansicht
Themen-Optionen

Prüfen ob Edit.Text einen Integer-Wert enthält

Ein Thema von Jonelmeier · begonnen am 4. Dez 2007 · letzter Beitrag vom 4. Dez 2007
Antwort Antwort
Jonelmeier

Registriert seit: 27. Sep 2007
Ort: Hamburg
96 Beiträge
 
Delphi XE Starter
 
#1

Prüfen ob Edit.Text einen Integer-Wert enthält

  Alt 4. Dez 2007, 11:59
Hi!

Ich hab grade ein kleines Problem, an dem ich einfach nicht weiterkomme...
Ich habe auf meiner Form ein Edit-Feld, in das ein Integer-Wert eingegeben werden soll.
Wie kann ich prüfen, ob die eingegebene Zahl ein Integer ist? Bei zu großen Zahlen bekomme ich immer die Meldung, wenn ich versuche die Zahl mit StrToInt umzuwandeln:
---------------------------
Umrechner
---------------------------
'45654674765756756756756767' ist kein gültiger Integerwert.
---------------------------
OK
---------------------------
Kann ich das prüfen, ohne das ich diese Meldung bekomme?
Wäre dankbar für einen kleinen Rat!

Jonelmeier
Jonas
  Mit Zitat antworten Zitat
Benutzerbild von Aurelius
Aurelius

Registriert seit: 29. Jan 2007
Ort: Erfurt
753 Beiträge
 
Delphi 7 Personal
 
#2

Re: Prüfen ob Edit.Text einen Integer-Wert enthält

  Alt 4. Dez 2007, 12:08
Das geht glaube mit
if trystrtoint(edit1.text) then...
Jonas
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#3

Re: Prüfen ob Edit.Text einen Integer-Wert enthält

  Alt 4. Dez 2007, 12:11
Die eingegebene Zahl ist grösser als ein Integer, daher die Fehlermeldung.
StrToInt und TryStrToInt können nur mit Integer umgehen.

Ich würde Dir ein TMaskEdit empfehlen. Hier kannst Du vorgeben, dass nur Zahlen eingegeben werden können.

Oder Du prüfst jeden "Buchstaben" des Strings auf Integer.
Delphi-Quellcode:
for i:=.... do
begin
  Erfolg := TryStrToInt(EdZahlen.Text[i], Zahl);
  if not Erfolg then
  begin
    Break;
  end;
end;
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
oldmax

Registriert seit: 27. Apr 2006
Ort: Gieboldehausen
167 Beiträge
 
#4

Re: Prüfen ob Edit.Text einen Integer-Wert enthält

  Alt 4. Dez 2007, 12:19
Hi
Drei Möglichkeiten fallen mir da sofort ein:
1. Ereignis OnKeyPress : Nur Ziffen bis zu einer bestimmten Länge durchlassen

Delphi-Quellcode:
Procedure MyForm.Edit1keypress(Sender: Tobject; Var Key: Char);
Begin
  if (Key<'0') or (Key>'9') or (Length(Sender as TEdit).Text< n) then Key:='';
end; // evtl. mußt du die Steuerzeichen noch durchlassen....
2. Vor Wandlung Stringlänge abfragen und evtl. anmeckern
Delphi-Quellcode:
...
If Length(Edit1.Text)< n then gueltig :=true else Gueltig:=False;
If Güeltig then
begin
  Prüeftext:=Edit1.Text;
  For i:=1 to Length(Prueftext) do if (Prueftext[i]<'0') or (Prueftext[i]>'9') then Gueltig :=False;
end;
if Gueltig then x:=StrToInt(Edit1.Text);// zugegeben, sehr umständlich
...
und dann geht noch try ... except

Über weitere müßte ich noch nachdenken....
Gruß oldmax
Noch ist mein Rechner mir zu Diensten.... ansonsten habe ich die Macht ihn zu vernichten !
  Mit Zitat antworten Zitat
Jonelmeier

Registriert seit: 27. Sep 2007
Ort: Hamburg
96 Beiträge
 
Delphi XE Starter
 
#5

Re: Prüfen ob Edit.Text einen Integer-Wert enthält

  Alt 4. Dez 2007, 12:20
@xX0815Xx:
Danke, funktioniert wunderbar!!! Die Funktion ist komischerweise in meiner Delphi-Hilfe nicht aufzufinden

@RavenIV:
Wenn ich das ganze mit TryStrToInt versuche bekomme ich keine Exception wenn die Zahl zu groß ist...auch wenn ich eine Real oder Extended Zahl in das Edit schreibe, bekomme ich trotzdem keine Exception! Die Funktion liefert dann nur False zurück...
Funktioniert also genau so wie ich wollte!!!

@oldmax:
Sorry, das ich dich erst übersehen hab! Funktioniert super mit xX0815Xx's MEthode, trotzdem vielen Dank für deine bemühungen, ich werd's mir auf jeden Fall merken!!!
Danke!!!

Jonelmeier
Jonas
  Mit Zitat antworten Zitat
Antwort Antwort


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 08:38 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