![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
|
Problemas con FormatFloat
Hola Foro.
Feliz Navidad. Mi problema es el siguiente, en un parantalla de facturación quiero que al digitar un monto y salir del edit se me formatee con comas y puntos. Utilizo el siguiente codigo Código:
procedure TfrmFacturaNueva.edValorDolaresExit(Sender: TObject);
var
ed : tRightEdit;
begin
ed:=sender as tRightEdit;
ed.Text:=FormatFloat('#,##0.00', strToFloat(ed.Text));
end;
Alguien podría decirme porque me formatea mal? La configuración regional de la computadora está bien, ',' para miles y '.' para decimales. Muchas gracias. |
|
#2
|
||||
|
||||
|
¿No habrás modificado el valor de ThousandSeparator a ' '?... Prueba asignando previamente:
Código:
ThousandSeparator := '.';
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
|
|
#3
|
||||
|
||||
|
Creo que el problema viene dado porque en la segunda vez que intentes convertirlo el separador de millares no es compatible y arroja una excepción, por lo que propongo la siguiente solución guardar el número en una variable y actuar sobre ella:
Código:
procedure TForm1.Button1Click(Sender: TObject);
var
MiNumero:Double;
begin
MiNumero:=strToFloat(StringReplace(ed.Text,ThousandSeparator,'',[rfReplaceAll]));
ed.Text:=FormatFloat('#,##0.00', MiNumero);
StringReplace(Ed.Text,',',' ',[rfReplaceAll]);
end;
__________________
Guía de Estilo de los Foros Cita:
|
![]() |
|
|
|