Ver Mensaje Individual
  #3  
Antiguo 21-08-2015
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Reputación: 15
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
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' {Form1};

{$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)); // --> imprime 100.33
  ShowMessage(DateToStr(Now));  // --> imprime 21\08\15

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,

Última edición por AgustinOrtu fecha: 21-08-2015 a las 21:48:16.
Responder Con Cita