Ver la Versión Completa : Validar convercion strtoint
martita
11-07-2005, 23:06:17
hola foro, quiero validar la entrada de un tedit para realizar despues
convercion strtoint mas no se como hacer para validar que solo entren
datos numericos, tambien aprovechando quisiera saber como
validad un stringGrid para que tambien solo reciba valores numericos.
Gracias ....... y ya saben cual es el premio !!!!!!!!! ;)
lgarcia
11-07-2005, 23:25:55
Hola
Con el procedimiento Val(Edit1.Text, I, Code) lo puedes lograr donde code para ser satisfactorio tiene que ser cero. En la ayuda de Delphi viene un ejemplo.
Saludos
Luis Garcia
_____________________________
La mejor manera de decir es hacer
Puede ser más cómoda la funcion StrToIntDef, si no se puede convertir la cadena a numero, suministras un valor predefinido, así no te lanza excepciones y no tienes que mirar códigos de error.
para que no introduzca los caracteres, podría ser algo así en el OnKeyDown del Tedit
const Numeros = ['0'..'9']
begin
if not(chr(key) in numeros) and (key >30) then
key := 0; // que no escriba esa tecla
end;
key > 30 es para permitir pulsar las teclas de control, insertar, suprimir, etc.
Modificalo segun lo necesites. Un saludo
martita
12-07-2005, 17:47:16
Hola Lepe, sabes que agregue tu codigo a mi forma pero
sige aceptando letras en la captura. mira este es mi codigo
procedure Tfcorte.Edit2KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
const Numeros = ['0'..'9'];
begin
if not(chr(key) in numeros) and (key >30) then
key := 0; // que no escriba esa tecla
end;
no se que pasa pero sige aceptando entradas no numericas.
agradeceria muchisimo tu ayuda. Bye.
martita
12-07-2005, 21:58:28
hola foro, hay alguien mas que me pueda comentar sobre este
problemita, ya puse el codigo anterior mas no funciona.
Gracias.. ;)
Fernando
12-07-2005, 23:22:34
Descarga las Rxlib
ContraVeneno
12-07-2005, 23:25:46
con las RXLib podría ser suficiente....
si no, prueba con la función
function TryStrToInt(const s: string; out i : integer): boolean;
Aquí hay un ejemplo (http://delphi.about.com/library/rtl/blrtlTryStrToInt.htm)
delphi.com.ar
12-07-2005, 23:28:26
hola foro, hay alguien mas que me pueda comentar sobre este
problemita, ya puse el codigo anterior mas no funciona.
Yo te recomiendo crear o bajar algun componente para este propósito. Simplemente porque lo vas a utilizar en mas de un sitio, y porque la única entrada de datos a los edits, no es el teclado. Si solo validas las teclas presionadas, pueden ingresar valores incorrectos desde el clipboard o mismo desde código. Por eso te recomiendo como dice Fernando, utilizar el TCurrencyEdit de las RxLibs, que son opensource, o puedo ofrecerte de mi página un juego de componentes con este fin, pero por desgracia no puedo publicar el código.
Saludos!
vtdeleon
12-07-2005, 23:43:03
Saludos
Facilmente resolvi esto en el evento OnKeyPress del Edit if not (key in ['0'..'9',#13,#8]) then key:=#0Suerte;)
martita
13-07-2005, 01:20:37
muchas gracias chicos por la ayuda, en realidad VTDELEON aclaro bien el
problema por lo que vi fue que LEPE publico que su codigo lo pusiera
en el evento onkeydown y en relidad debe ser como VTDELEON lo dice
en el evento onkeypress, y con eso ya funciono correctamente, gracias.
aprovechando , alguien me puede decir donde puedo bajar las Rxlibs
que funcionen con Delphi 2005 , pues lo que estoy utilizando.
Gracias a todos y les mando un Rico Besito
(se lo reparten en partes iguales);)
vtdeleon
13-07-2005, 02:35:43
Saludos
Creo que este link: http://www.clubdelphi.com/foros/showthread.php?t=22588&highlight=Rxlib+2005 te puede orientar
vBulletin v3.6.8, Derechos ©2000-2024, Jelsoft Enterprises Ltd.