⤷ Set system decimal separator

Use SetLocaleInfo function, where last parameter is a new system separator.

SetLocaleInfo(
  LOCALE_SYSTEM_DEFAULT,
  LOCALE_SDECIMAL,
  ',');


Eckehard Fiedler wrote:

example might work better, if you change it a bit:


procedure TForm1.Button1Click(Sender: TObject);
const  cs1 : pchar = 'Windows';
begin
    SetLocaleInfo(    LOCALE_SYSTEM_DEFAULT,  LOCALE_SDECIMAL,',');
    SetLocaleInfo(    LOCALE_SYSTEM_DEFAULT,  LOCALE_STHOUSAND,'.');
    SendMessage( HWND_BROADCAST, WM_SETTINGCHANGE, 0, LongInt(cs1));
end;
Then applications are informed, that separators have changed.


More for developers