Delphi - Como puedo evitar que el usuario introduzca letras

 
Vista:

Como puedo evitar que el usuario introduzca letras

Publicado por Rigo de la rosa (7 intervenciones) el 08/05/2002 18:33:10
Hola amigos, soy nuevo en Delphi, e hice como practica un programa que suma dos numeros, estoy usando los Tedit, cuando hago clik en mi boton calcular y no hay nada en los Tedit, me manda un mensaje de error como que indicandome que no ahy nada,
La otra es como valido lo dos tedit para que solo el usuario pueda meter numeros y no letras.
por lo demas ya me calcula bien los datos.
Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Como puedo evitar que el usuario introduzca let

Publicado por Diego Romero (636 intervenciones) el 09/05/2002 04:49:48
En vez de usar TEdit usa TMaskEdit. Aún asi para capturar los errores usa la estructura try ... except, por ejemplo para tu caso.
try
Numero1:=StrToInt(Edit1.Text); //sentencia que puede causar error
Numero2:=StrToInt(Edit2.Text); //sentencia que puede causar error
Resultado:=Numero1+Numero2;
Label1.Caption:=IntToStr(Resultado);
except
ShowMessage('No se pudo calcular');
end; { try }
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Como puedo evitar que el usuario introduzca let

Publicado por Fer (269 intervenciones) el 09/05/2002 09:22:36
Pon este código para manejar el evento OnKeyPress de cada Edit (o un procedimiento compartido por todos los Edits que tengas).

if not (Key in ['0'..'9', Chr(VK_BACK)]) then
Key := #0;

El Chr(VK_BACK) es para permitir el BackSpace (borrado), si quisieras que se pudiese introducir también el punto (o la coma) decimal, tendrás que añadirlo a la lista:

if not (Key in ['0'..'9', Chr(VK_BACK), DecimalSeparator]) then
Key := #0;

OJO: con el código anterior el usuario puede introducir varios caracteres de separador decimal, tendrás que controlar ese caso, pero es muy sencillo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Mas simple....

Publicado por Miguel Contreras (20 intervenciones) el 09/05/2002 23:27:22
Creo que lo que buscas es esto.. yo lo hice de esta manera.. en el evento, usa MaskEdit, y en la propiedad EditMask Pon :
!999999;1;_
Este formato lo use solo para el ingreso de numeros hasta 6 digitos...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Como puedo evitar que el usuario introduzca let

Publicado por BigLuis (463 intervenciones) el 11/05/2002 16:53:18
Un poquito mas de ayuda.
Todos teneis razon pero es mas comprensible ir añadiendo lo que queremos que solo sea introducido por ejemplo
if not (Key in ['0'..'9', #8,'/','A']) then {#8 = Chr(VK_BACK)}
Key := #0;
'/' si quieres que solo se introduzcan fechas con este separador
'A' si quieres que de letras solo se pueda introducir la A etc.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar