Zitat von
mkinzler:
oder verwende, so vorhanden die überladene Version mit übergabe des Formats.
Hi,
das wäre die sauberste Lösung. Beim Überschreiben des Wertes in der globalen Variable bekommst Du immer dann ein Problem, wenn jmd. anderes den selben Gedanken hatte (und erfahrungsgemäß passiert sowas früher oder später mal). Deshalb einfach eine lokale FormatSettings Variable nehmen und die Eigenschaft ändern:
Delphi-Quellcode:
var formatSettings: TFormatSettings;
begin
GetLocaleFormatSettings(GetUserDefaultLCID, formatSettings);
formatSettings.DecimalSeparator := '.';
f := StrToFloat(s, formatSettings);
end;
Dabei wird hier einfach die lokale Einstellung des Benutzers verwendet, der Dezimalseperator durch einen Punkt ersetzt und dann eben die überladene StrToFloat-Funktion aufgerufen. Analog sieht es aus, wenn Du ein Float in einen String konvertieren willst, wobei dann im String das entsprechende Dezimaltrennzeichen verwendet wird.
Gruß Der Unwissende