NO modifiques la configuracion regional del sistema operativo en ningun programa que hagas
Esa configuracion global esta asi porque el usuario lo seteo de esa forma por algun motivo x (llamese x un programa o servicio que si no tiene esa configuracion no funciona bien, o porque cuando usa el excel le gusta que el separador de decimales sea '.' y no '.' entre otras muchisimas cosas)
Los programas bien diseñados no dependen de la configuracion regional del sistema operativo para funcionar bien.
Los programas bien diseñados formatean la informacion al formato mas adecuado/necesario
Hay muchas formas de lograr el formato numerico o de fechas mas adecuado para tu programa
El mas sencillo es usando las variables globales de tu programa. Con esto te evitas andar lidiando con FormatSettings (si bien es posible crear funciones propias que inicializan el registro FormatSettings/pasan los argumentos correctos a las DateToStr, IntToStr, CurrToStr)
Yo suelo hacerlo con en el .dpr del proyecto:
Código Delphi
[-]
program Project1;
uses
Forms,
SysUtils,
Unit1 in 'Unit1.pas' ;
{$R *.res}
begin
Application.Initialize;
Application.UpdateFormatSettings := False;
Application.UpdateMetricSettings := False;
CurrencyString := '$';
DecimalSeparator := '.';
ThousandSeparator := ',';
ShortDateFormat := 'dd\mm\yy';
Application.MainFormOnTaskbar := True;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.
Código Delphi
[-]
ShowMessage(CurrToStr(100.33)); ShowMessage(DateToStr(Now));
Notar que es necesario agegar SysUtils en la secciones uses
Con esto le estas diciendo a Delphi que dentro de tu programa se usara determinada configuracion pero que NO modifique la configuracion regional del equipo
Esa configuracion es
solo visible por tu programa,