Erstmal mußt du bedenken, daß StrToFloat und Co. sprachabhängige Systemeinstellungen für "," "." usw. verwenden.
englisch
- Dezimalpunkt
- Komma als Tausendertrennzeichen
deutsch
- Dezimalkomma
- Tausenderpunkt
Dann gibt es in einigen Windows 7-Intallationen einen "Fehler", welcher dein Programm andere Werte auslesen läßt, als in der Systemsteuerung angezeigt werden.
- speziell betrifft das einige deutsche (vorinstallierte) Windows 7, wo die deutschen Einstellungen nicht überall eingetragen sind
- Delphi list dabei dann leider die englischen Einstellungen aus. obwohl der Benutzer auf deutsch eingestellt ist.
(Problem: dort sind natürlich , und . vertauscht)
Dazu gibt es schon mehrere Threads
> Lösung: Die Sprachoptionen in Windows auf Englisch stellen und dann zurück auf Deutsch,
Lösungen für dich und dein Problem, denn so oder so bleibt das Zahlenformat sprachabhängig:
- entweder die Zahlen in einem sprachabhängigen Format besorgen
- oder StrToFloat sprachunabhängig machen (PS: es gibt ein
StrToFloat, welches ein FormatSettings benutzt)
[edit]
Zitat:
Ah, Optimierung gefunden...
Zitat:
Gleiches Resultat:
Was passiert, wenn du nicht vergißt auch noch den Tausenderpunkt zu setzen?
PS: GetLocaleFormatSettings mußt du nicht unbedingt nutzen, es reicht auch, wenn du da einfach die (nötigen) Werte direkt setzt, also die Werte, welche von der entsprechenden Funktion genutzt werden.
Ein Therapeut entspricht 1024 Gigapeut.