PDA

Ver la Versión Completa : Formato Numérico


javiermorales
15-05-2003, 08:24:16
Buenos Días. Una pregunta sencilla. He construido un Formulario, donde se introducen todos los datos de una tabla y con posterioridad, se insertan en la misma a través de una SQL.

Tengo Edit y MakEdit, pero ¿como puedo controlar el formato de los campos numéricos?. He probado con la máscará, pero no me trata el numérico como es normal en otras aplicaciones, es decir se introduce el número (21435,45) y el me muestra (21.435,45), es decir lo mas típico del mundo, sino que me aparece ___,___,___.__ (con la máscara ###,###,###.##;0;).

Muchas gracias a todos.

Er_Manué
15-05-2003, 09:52:18
Jelou!

Para aser lo k tu kieres simplemente tienes k formatear el número con la siguiente función: Formatfloat('#,##0.00', strtofloat(edit1.text));

'#,##0.00' es el formato que le quieres dar al número, en este caso un número del estilo 1.234,56

edit1.text es la cadena numérica.

esto haría lo que tú buskas: metes 12345,6 y te lo formatea como 12.345,6. Espero que te sirva ;)

Salu2

javiermorales
15-05-2003, 10:05:30
Gracias, una pregunta, ¿el formateo lo hago en el evento OnExit del Edit y se lo reasigon al Edit?, te lo comento, por que lo que quiero es que el número aparezca formateado en el form

Er_Manué
15-05-2003, 11:29:37
xasto. Lo pones en el evento onExit para que cuando salgas se te formate el texto de contiene el EditBox.

Tienes que tener cuidado cuando vayas a formatear una entrada ya formateada, ya que te saltará una excepción del strtofloat() ya que el formáto no es válido, para evitar eso, únicamente debes eliminar todos los puntos del editBox y todo solucionado;)

Salu2

javiermorales
15-05-2003, 12:06:01
Muchas Gracias, respecto a la eliminación de los puntos, supongo que pasando en el evento OnEnter del Edit el text a Float sin formato, se solucionará, ¿verdad?.

Er_Manué
15-05-2003, 12:22:14
Klaro, por ejemplo una forma facil de eliminar los puntos es mediante este código que se ejecuta en el evento onEnter

procedure Tform1.editPrecioVentaEnter(Sender: TObject);
var
i : integer;
aux,
cad : string;
begin
cad := '';
aux := edit1.Text;
for i := 1 to length(aux) do
if aux[i] in ['0'..'9',','] then cad := cad + aux[i];

edit1.Text := cad;
end;


Salu2