PDA

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

Lepe
12-07-2005, 10:16:13
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