![]() |
Ein String auf numerisch Testen
Hallo Leutz!
Ich übergebe mir aus einen EditFeld den Inhalt an eine Variable(integer). Durch StrToInt lasse ich es umwandeln... Wenn man Zaheln eingibt alles schön und gut.. nur was wenn man plötzlich mal einen Buchstabe eingibt? -> Logischer weiße eine Fehler! Nun möchte ich vor dem Umwandeln testen ob im Textfeld nur Ziffern eingegeben wurden?? Wie geht das? Unter VB mit IsNumeric ... aber unter Delphi keine Ahnung? Gibt es etwas vorgefertigtes?? Danke Schonmal MfG Progger2005 |
Re: Ein String auf numerisch Testen
Probiere es mal mit TryStrToInt!
Flare |
Re: Ein String auf numerisch Testen
Servus!
Ich habe es versucht jedoch ohne Ergebnis geblieben?? Ich will ja möglichst auch noch eine Ausgabe tätigen um den Benutze mitzuteilen was er falsch gemacht hat.. |
Re: Ein String auf numerisch Testen
Zeig mal etwas Code, dann kann man die u.U. sagen, warum das gewünschte Ergebnis ausgeblieben ist.
|
Re: Ein String auf numerisch Testen
Hier der CODE
Habe es jedoch mit TryStrToFloat gemacht...sollte ja aber trotzdem gehen.. Also ich will herausfiltern wenn ein Buchstabe eingegeben wurde...das da net gerechnet wird...
Delphi-Quellcode:
procedure Tmain.cmdBerechnenClick(Sender: TObject);
var F,A,p:Real; begin F:=TryStrToFloat(txtF.Text); A:=TryStrToFloat(txtA.Text); If A=0 Then //Ausgabe das Falsche Werte eingegeben wurden txtp.text:='Falsche Werte' Else begin //Weiterrechnen p:=F/A; txtp.Text:=FloatToStr(p); end; end; |
Re: Ein String auf numerisch Testen
Du hast die Funktion falsch angewandt.
Als Rückgabewert erhälst du ein Boolean, der aussagt, ob die Konvertierung erfolgreich war. Den Wert erhälst du per var-Parameter. |
Re: Ein String auf numerisch Testen
Also um es mal darzulegen das Problem.
Delphi-Quellcode:
also:
b:=TryStrToFloat(txtA.Text,A);
b - boolean Wert A- Float Wert Hab ich das richtig verstanden? |
Re: Ein String auf numerisch Testen
Zitat:
also:
Delphi-Quellcode:
if not TryStrToFloat(txtF.Text, F) then
//Ausgabe das Falsche Werte eingegeben wurden |
Re: Ein String auf numerisch Testen
Ja, richtig. Man könnte es auch so machen:
Delphi-Quellcode:
//Edit: Und denk dran A auf <> 0 zu überprüfen sonst gibt es evtl. ne nette Division durch null ;-)
procedure Tmain.cmdBerechnenClick(Sender: TObject);
var F, A: Real; begin if TryStrToFloat(txtF.Text, F) and TryStrToFloat(txtA.Text, A) then begin //Weiterrechnen p := F/A; txtp.Text := FloatToStr(p); end else txtp.text := 'Falsche Werte' end; |
Re: Ein String auf numerisch Testen
Dann würde ich aber noch überprüfen, ob A <> 0 ist!
|
Re: Ein String auf numerisch Testen
oki... ich Danke euch
|
Re: Ein String auf numerisch Testen
Warum nicht gleich verhindern, dass Buchstaben eingegeben werden können?
|
Re: Ein String auf numerisch Testen
Dann müsste man aber auch noch die doppelte Eingabe von einem Komma usw überprüfen...so ist es kurz und knapp.
Flare |
Re: Ein String auf numerisch Testen
Zeig mir mal eine Ganzzahl mit Komma. ;)
|
Re: Ein String auf numerisch Testen
Er benutzt TryFloatToString :zwinker:
Flare |
Re: Ein String auf numerisch Testen
Nabend ...,
ich bin der gleichen Meinung wie Luckie. Statt auf Fehler zu reagieren und dem Benutzer vielleicht noch ne 'BlaBla'-Botschaft zu senden, sollte man doch besser im Vorfeld Fehleingaben ausschliessen! Möglich wäre dies zb. durch TMaskEdit oder im OnChange Event von TEdit. LG Mario |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:32 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