![]() |
Minuszeichen abfangen?
Hi zusammen
Ich glaub ich stehe momentan am schlauch. habe schon einiges :oops: gesucht aber leider kein vernünftige Lösung gefunden. Ich versuche gerade im onChange von einem TEdit StrToFloat(TEdit(Sender).Text) umzuwandeln. beim eingaben von einem Minuszeichen kommt logischerweise der Fehler. Ist ja noch kein Gleitkomma Wert. Solte aber nicht in einer anderen Procedur sein ( OnKeyPress oder so sondern nur im onChange ) Wie kann ich das verhindern? :gruebel: Tau :hi: |
Re: Minuszeichen abfangen?
1. Fehlermeldung mit try...finally abfangen und Wert auf 0.0 setzten, oder
2. Prüfungen erst bei vollständiger Eingabe vornehmen (OnExit) |
Re: Minuszeichen abfangen?
Hallo Grishnak
1) try...finally ist glaube ich nicht das gelbe vom ei es muss noch besser Lösungen geben. 2) Zitat:
Der Grund ist das ich diese Lösung auch für ein bar andere fälle brauchen würde. Hatte auch schon mal was im Forum gefunden aber kann es leider nicht mehr finden. Tau :hi: |
Re: Minuszeichen abfangen?
strtofloatdef koennte es eventuell geben
|
Re: Minuszeichen abfangen?
Die Exeption wird trotzdem ausgelöst
Tau :hi: |
Re: Minuszeichen abfangen?
Zitat:
|
Re: Minuszeichen abfangen?
strtofloatdef hat bisher immer funktioniert.
wenns immernoch crasht, dann liegts aber nicht an strtofloatdef. |
Re: Minuszeichen abfangen?
Hi,
auch wenn es nicht weit vom try ... except weg liegt (das eh für falsche Eingaben drum rum sollte), schau dir doch einfach den gesetzten Wert direkt an. Also beim OnChange mal was wie
Delphi-Quellcode:
if self.EditDasMichInteressiert.Text = '-' then
begin exit; end; // if self.EditDasDichInteressiert.Text = '-' try self.DeinFloatValue := StrToFloat(self.EditDasDichInteressiert.Text); except // oops end; |
Re: Minuszeichen abfangen?
strtofloatdef() versteht auch minuszeichen.
loest euch mal von den try-excepts, wenn die funktionen das selber schon ordentlich behandeln. |
Re: Minuszeichen abfangen?
wie wäre es mit "TryStrToFloat", das versteht optional auch + und - und gibt eine exception, falls doch etwas anderes als Ziffern eingegeben werden .
Chris |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:28 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