![]() |
Prüfen ob Edit.Text einen Integer-Wert enthält
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 |
Re: Prüfen ob Edit.Text einen Integer-Wert enthält
Das geht glaube mit
Delphi-Quellcode:
if trystrtoint(edit1.text) then...
|
Re: Prüfen ob Edit.Text einen Integer-Wert enthält
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; |
Re: Prüfen ob Edit.Text einen Integer-Wert enthält
Hi
Drei Möglichkeiten fallen mir da sofort ein: 1. Ereignis OnKeyPress : Nur Ziffen bis zu einer bestimmten Länge durchlassen
Delphi-Quellcode:
2. Vor Wandlung Stringlänge abfragen und evtl. anmeckern
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....
Delphi-Quellcode:
und dann geht noch try ... except
...
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 ... Über weitere müßte ich noch nachdenken.... Gruß oldmax |
Re: Prüfen ob Edit.Text einen Integer-Wert enthält
@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 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:20 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