错误:未声明的标识符'DecimalSeparator'且没有'StringReplace'的重载版本

时间:2015-07-22 09:27:32

标签: delphi delphi-xe7

您好我已编码,到目前为止,在WinXP中使用Delphi XE7直到Win7中的Delphi 2007开发和编译都没有问题。

我不确定为什么会这样。

错误指向的行

....
if(tS<>'') then
begin
  Result:=StrToFloat(StringReplace(String(tS),'.',DecimalSeparator,[]));
  Invalid:=False;
end;
....

错误:

1) [dcc32 Error] UtilNumString.pas(321): E2003 Undeclared identifier:     'DecimalSeparator'
2) [dcc32 Error] UtilNumString.pas(321): E2250 There is no overloaded version     of 'StringReplace' that can be called with these arguments   

请亲亲加入。 感谢

1 个答案:

答案 0 :(得分:4)

已删除格式设置的旧全局变量。您可以使用FormatSettings全局变量:

Result:=StrToFloat(StringReplace(String(tS),'.',FormatSettings.DecimalSeparator,[]));

或者,或者(理想情况下......),您可以创建本地TFormatSettings并使用它。

var
  fs : TFormatSettings;
begin
   fs := TFormatSettings.Create();
   Result:=StrToFloat(StringReplace(String(tS),'.',fs.DecimalSeparator,[]));
end;