Ver Mensaje Individual
  #2  
Antiguo 05-03-2018
Avatar de gatosoft
[gatosoft] gatosoft is offline
Miembro Premium
 
Registrado: May 2003
Ubicación: Bogotá, Colombia
Posts: 732
Reputación: 16
gatosoft Va camino a la fama
Una forma es modificar el registro global FormatSettings al inicar tu aplicaciòn para que siempre tome la coma como separador decimal...

asi:

Código Delphi [-]
procedure TForm1.FormCreate(Sender: TObject);
begin
  FormatSettings.DecimalSeparator:=',';
end;

Pero debes tener en cuenta que estas almacenando tus datos en archivos en forma de texto (supongo).. asi que siempre deberas tener cuidado como lo lees y como lo guardas...

otra opcion es la de utilizar un registro formatsettings personalizado para hacer tus conversiones.

asumamos por ejemplo que tienes tus datos almacenados con un separador decimal igual a símbolo "Arroba".. los debes leer y trabajarlos en pantalla con el separador decimal de la màquina...

y cuando los guardes los debes guardar en otro archivo que tiene otro separado decimal, por ejemplo el signo "dolar"


Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
Var Texto: String;
    Valor: Double;
    MyFX: TformatSettings;
begin
  Texto:='45@23'; //este es el dato que lees de tu archivo 1
  MyFX.DecimalSeparator:='@';  //defines la arroba como tu separador decimal personalizado
  Valor:= StrToFloat(Texto, MyFX); //conviertes el texto (con la arroba en un numero real

  Edit1.Text:= FloatToStr(Valor); //muestras el numero en pantalla. Se verá con el separador decimal de la maquina

  Valor:= StrToFloat(Edit1.Text); // despues de modificado, conviertes el texto en numero nuevamente
  MyFX.DecimalSeparator:='$'; // defiens el separador decimal de salida
  Texto:= FloatToStr(Valor, MyFX); // conviertes el numero a texto con el nuevo separador decimal

  Edit2.Text:= texto; // guardas o muestras el numero convertido a texto

end;

Espero haber sido claro
__________________
gatosoft [M.40.co]
Responder Con Cita