PDA

Ver la Versión Completa : ¿Como colocar, un formato de dinero a un TEDIT?


jscubillos5
13-03-2014, 16:25:20
Buenos días comunidad, tengo un problema quiero que en una caja de texto, se muestre el formato de dinero, puesto que es muy diferente ver: 5665565, que ver: 5.665.565, estoy utilizando la siguiente proceso en el evento ONEXIT de la caja:


procedure TFormRegistrarPagare.EditMontoExit(Sender: TObject);
begin
ValidarSoloDinero(EditMonto.Text, ' Campo Monto ');
EditMonto.Text:= FormatCurr(',0',StrToCurr(EditMonto.Text));
end;


El procedimiento ValidarSoloDinero hace:


procedure ValidarSoloDinero(ObjetoaValidar: String; NombreObjetoaValidar: String);
begin
try
StrToCurr(ObjetoaValidar);
except
raise Exception.Create('Atención el : '+ NombreObjetoaValidar + ' solo permite formato de dinero por favor revise y corriga');
end;
end;


La primera vez que lo ejecuto funciona perfecto, pero si vuelvo a entrar al evento ONEXIT de la caja arroja un error, ya que en el primer intento el número es: 528525, y en el segundo es 528.525, ahí dice que no tiene un formato de punto flotante correcto, alguno de ustedes me podria ayudar??.

De ante mano gracias por tomarse el tiempo de leer este Hilo.

newtron
13-03-2014, 17:21:50
Hola.

Deberías de hacer algún cambio para que antes de llamar al StrToCurr... quitarle los puntos a la variable ObjetoaValidar.

Por ejemplo...


procedure ValidarSoloDinero(ObjetoaValidar: String; NombreObjetoaValidar: String);
begin
try
StringReplace(ObjetoaValidar,'.','',[rfReplaceAll]);
StrToCurr(ObjetoaValidar);
except
raise Exception.Create('Atención el : '+ NombreObjetoaValidar + ' solo permite formato de dinero por favor revise y corriga');
end;
end;

jscubillos5
13-03-2014, 17:27:35
Gracias Newtron. ^\||/