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.