PDA

Ver la Versión Completa : validar un precio en un tedit


jesus83
12-01-2007, 00:02:02
necesito validar un precio que solo escriba numeros y una sola vez el punto decimal si alguien me pude ayudar se lo agradesco

Onti
12-01-2007, 00:06:27
Podrías utilizar el componente CurrencyEdit de las librerías RXLib

Neftali
12-01-2007, 11:02:15
Segun la version de Delphi que tengas puedes utilizar FloatToStrF; Se trata de convertir un Float a String; Si miras la ayuda verás que si el parámetro de entrada no es un número correcto, el resultado es la cadena "NAN" (not a Number).

jesus83
13-01-2007, 12:04:26
hola que tal espero que para otros usuarios les sirva esta respuesta de lo que hice concatene dos cadenas y la converti a float ejemplo :

ppv: double;
Edit3.Text:=Edit1.text+'.'+Edit2.Text;
//(variable de tipo doble)
ppv:=StrToFloat(edit2.Text);

y luego lo pase por parametros a la base de datos de MySQL

sifdatamodule.adoquery1.close;
sifdatamodule.adoquery1.sql.text:='INSERT INTO producto VALUES( :codigoProducto,:nombreProducto,:precioProducto)';
sifdatamodule.adoquery1.parameters.parambyname('codigoProducto').Value:=sifleltprdt1.text;
sifdatamodule.ADOQuery1.Parameters.ParamByName('nombreProducto').Value:=sifleltprdt2.text;
sifdatamodule.ADOQuery1.Parameters.ParamByName('precioProducto').Value:=ppv;//Text;
sifdatamodule.adoquery1.execsql;

gracias por respuesta me servio mucho

Neftali
15-01-2007, 12:52:32
Recuerda utilizar TAG's (http://neftali.clubdelphi.com/images/ResaltarSintaxisDelphi.png) en tus mensajes cuando escribas trozos de código Delphi, SQL, PHP,...

richi
15-01-2007, 13:36:22
Lo que pudes hacer es poner en el OnKeyPress del edit lo siguiente:

if (key in['0'..'9',#8,',']) then
begin
if (key = ',') then
begin
try
temp := strToFloat(Edit1.text+key);
except
key:= #0;
end;
end;
end
else
key:= #0;

Siendo temp una variable de tipo real o currecy segun lo que te haga falta.

edr_tuc
03-01-2008, 15:12:07
hola a todos ,navgando llegue a esta cadena de preg y respuestas la cual me sirvio muchisimo, el unico problema al aplcar la solucion que dio richi es que cuando ingreso dos veces la " , " (la coma) me aparece un mensaje de error, no asi cuando ingreso una letra (no aparece nada )
habria alguna forma de que no me apareciera ese mensaje ??
espero sus respuesta muchas gracias

ContraVeneno
03-01-2008, 16:11:58
Tantos problemas y tantas líneas de código cuando todo se soluciona simplemente utilizando un TCurrencyEdit de las RXLib (como ya había dicho Onti) o el TjvValidateEdit de las Jedi.

PD. Por cierto, tanto las RXLib como las Jedi son gratis

fidel
03-01-2008, 19:13:56
Mira aquí

http://www.clubdelphi.com/foros/showthread.php?t=51465&highlight=solo+n%FAmeros

edr_tuc
11-01-2008, 01:56:14
muchas gracias a todos ,de verdad siempre me salvan
saludos a todos .-

jachguate
11-01-2008, 03:19:54
Tantos problemas y tantas líneas de código cuando todo se soluciona simplemente utilizando un TCurrencyEdit de las RXLib (como ya había dicho Onti) o el TjvValidateEdit de las Jedi.

PD. Por cierto, tanto las RXLib como las Jedi son gratis

De hecho, al menos hasta donde yo me quedé, las RXLib no tienen mas desarrollo ni mantenimiento, y fueron "absorbidas" o "donadas" o "retomadas" por el proyecto jedi.

Jedi, no solo es gratis, es libre (la licencia es la MPL 1.1) enlace (http://homepages.codegear.com/jedi/jvcl/)

Hasta luego.

;)

Neftali
11-01-2008, 11:29:47
...las RXLib no tienen mas desarrollo ni mantenimiento, y fueron "absorbidas" o "donadas" o "retomadas" por el proyecto jedi.

La versión de Delphi7 compila casi sin tocar nada en D2006/D2007. Yo mismo hice algunos cambios y subí la versión con algunas instrucciones para instalarlas (por si alguien no quiere instalar todas las Jedi para tener las Rx).
En su día estaban en un link aquí en el club, pero creo que se perdió, en mi página sigue estando el paquete; link (http://neftali.clubdelphi.com/temp/rxlib_d2006.zip).