PDA

Ver la Versión Completa : Punto de separación de miles


m.ruiz
22-11-2007, 11:25:19
Hola a todos, buenos días:
A ver, tengo un pequeño problema con el punto de decimales a ver si alguien me puede echar una mano.

Tengo una aplicación con varios componentes (Edits, DBEdits y DBGrid) que muestran valores numéricos. Me gustaría que mostraran el punto de separación de miles. Los valores decimales me los muestra sin problemas, pero el punto de miles no aparece reflejado. A continuación un ejemplo:

En mi edit, se muestra el valor así:

19362,25

Y yo necesito que aparezca así:

19.362,25

¿hay alguna fórmula para que para esos tres componentes me muestre el punto de separación de miles?

Muchas gracias por vuestra atención. Y por supuesto un 10! a este club que tanta ayuda nos presta.
saludos!

basti
22-11-2007, 12:19:44
Para los DBEdit y DBGrid, puedes usar la propiedad DisplayFormat del campo que tienes relacionado con el control. Para los Edit, puedes hacer lo siguiente:


procedure TForm1.DBEdit1Exit(Sender: TObject);
begin
Edit1.Text := format('%n', StrToFloat(Edit1.Text));
end;

m.ruiz
22-11-2007, 12:40:08
Gracias por tu aportación, pero al aplicar ese texto me da un error.
No se si es que me falta aplicar alguna librería o algo, pero me sale lo siguiente:

"There is no overloaded version of "Format" that can be called whit these arguments".

No se si sirve de algo, pero trabajo con Delphi 7.

Muchas gracias de nuevo.

basti
22-11-2007, 12:45:32
Faltaban los corchetes...

procedure TForm1.DBEdit1Exit(Sender: TObject);
begin
Edit1.Text := format('%n', [StrToFloat(Edit1.Text)]);
end;

m.ruiz
22-11-2007, 12:58:19
Genial! Ahora si, me funciona perfecto.
SOlo me queda buscar la propiedad esta que me comentas del DBGrid DisplayFormat, a ver como funciona.

Muchas gracias por ayudarme.!

Lepe
22-11-2007, 17:34:00
En la primera ventana o datamodule que creas en tu programa, añades abajo del todo:

initialization
sysutils.Decimalseparator := ',';
sysutils.ThousandSeparator := '.';


Ahora doble clic a tus ttables, tquerys, etc, y a cada campo le añades en la propiedad
- DisplayFormat: ,#.00
- EditFormat 0.00 (casi mejor no modificarla, pero en fin, ya verás tú, te lo comento para que te fijes que existe).

En esas propiedades, debes usar el punto como separador decimal en los DBEdits (para que delphi lo entienda); después como hemos dicho que el separador decimal sea la coma, se mostrará perfectamente.

Eso sí, si necesitas usar el punto del teclado numérico como separador decimal, mira el hilo "dichoso separador decimal ("http://www.clubdelphi.com/foros/showthread.php?t=1463&highlight=dichoso+separador+decimal) en ese hilo se explica todo con detalle.

Así no es necesario usar los eventos OnExit.

Saludos