![]() |
Überprüfen, ob Variable einem gewissen Typ entspricht
:-D Hallo
Ich habe folgendes Problem: Ich programmiere einen Taschenrechner. Wie kann ich es unterbinden, dass der Benutzer mehrmals die Kommataste drücken darf. Ich dachte da an eine Art überprüfung:
Delphi-Quellcode:
Aber wahrscheinlich geht das so nicht. Auf den Punkt gebracht, möchte ich die Eingabe in Edit1 auf ein Komma überprüfen, und nur wenn keines vorhanden ist, darf der User die Kommataste drücken.
If edit1.text = real then....
Hat jemand einen Denkanstoß ? Danke :stupid: |
Re: Überprüfen, ob Variable einem gewissen Typ entspricht
Es gibt mehrere Möglichkeiten: Ich denke da an val(hat einen Fehlerparameter) und TryStrToFloat, außerdem natürlich die unsaubere Variante mit try..except.
Hoffe geholfen zu haben Apollonius |
Re: Überprüfen, ob Variable einem gewissen Typ entspricht
:shock:
Da ich Delphi-Anfänger bin, glaube ich, dass ich noch nicht weiter bin. Ich habe mir
Delphi-Quellcode:
und
TryStrToFloat
Delphi-Quellcode:
mal in der Hilfe angesehen, aber geht es dabei nicht eher darum, Eingabefehler des Users so umzuändern, dass ich brauchbar damit rechnen kann ?
val
Ich suche aber eine Möglichkeit, die es gänzlich dem User untersagt, eine falsche Eingabe zu tätigen. Vielleicht wäre auch einfach ein simples Beispiel für mich möglich ?? danke :mrgreen: |
Re: Überprüfen, ob Variable einem gewissen Typ entspricht
Du versuchst einfach, die Benutzereingabe mit TryStrToFloat in einen Float umzuwandeln. Wenn die Funktion false zurückgibt, weißt du, dass die Benutzereingabe ungültig ist. Dann kannst du z.B. eine Messagebox zeigen lassen.
Wenn du ständig überprüfen willst, dann solltest du obige Testroutine in das onChange deines Edits schreiben. |
Re: Überprüfen, ob Variable einem gewissen Typ entspricht
Hi,
Wie wärs damit?
Delphi-Quellcode:
Das find ich einfacher als TryStrToFloat oder so.
if pos(',',Edit1.Text) = 0 then
ManDarfKommaSetzen; Gruß Neutral General |
Re: Überprüfen, ob Variable einem gewissen Typ entspricht
du könntest bei jedem onKeyPress des Edits schauen ob schon ein ',' vorhanden ist (zB mit Pos), wenn ja einfach key := #0 setzen
|
Re: Überprüfen, ob Variable einem gewissen Typ entspricht
Zitat:
|
Re: Überprüfen, ob Variable einem gewissen Typ entspricht
*grummel*
Aber damit ignoriert man die Einstellung für den DecimalSeparator, und außerdem kann man mit TryStrToFloat auch gleich in einem Aufwasch die Überprüfung machen, dass nur Zahlen vorkommen. Wie arbeitet denn der Taschenrechner? Schreibt man alles in eine Zeile (3+5*6) oder gibt man erst eine Zahl ein, bei Eingabe eine Rechenzeichens wird das Edit gelöscht, nächste Zahl... Bei ersterer Methode ist TryStrToFloat nämlich hinfällig, die Überprüfung auf mehrere Kommata aber auch :lol: |
Re: Überprüfen, ob Variable einem gewissen Typ entspricht
Zitat:
allerdings geht ja noch
Delphi-Quellcode:
if (key = ',') and (Pos(',', Edit1.Text) <> 0) then
key := #0; |
Re: Überprüfen, ob Variable einem gewissen Typ entspricht
das geht. Allerdings sollte man beachten das man auch per "Strg + V" und per Kontextmenü dinge aus der zwischenablage einfügen kann und das sollte man dann im OnChange korrigieren.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:08 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