Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Como Validar un campo numerico? (https://www.clubdelphi.com/foros/showthread.php?t=5235)

Ricsato 13-11-2003 20:40:14

Como Validar un campo numerico?
 
Hola a todos, me gustaria que alguien me dijera como hacerle para validar la lectura de un dato numerico en un Edit, sin utilizar el Maskedit. Inserte el siguiente codigo:

try
kms:=Strtoint(Edit2.Text);
except
on E: EConvertError do
MessageDlg('Lectura no es valida!!!', mtError, [mbOk], 0);
end;

y cuando leo letras el programa se me revienta sin mostrarme este mensaje de error.

Gracias

roman 13-11-2003 21:03:20

Probé tu código y no presenta ningún problema; el mensaje se muestra correctamente cuando se introducen letras. Pareciera que el error está en otra parte. Quizá algo antes de la conversión está generando una excepción que no detectas.

// Saludos

Lepe 14-11-2003 08:13:29

otra forma de hacerlo sin utilizar las excepciones podria ser esta:

Código:

      if trystrtoint (dbedit2.Text,i) then
      begin
          // se ha podido convertir y el valor está en la variable "i"
      end
      else  // no se ha podido convertir a numero


Saludos

tarco35 14-11-2003 13:57:49

se me ocurre controlar las teclas del Edit... en el evento OnkeyPress... filtra solo aquellas que sean numeros:

If Not (Key IN ['0'..'9']) then key := #0

claro que tendras que controlar el resto de caracteres como por ejemplo el de borrar... pero funciona bien.

__hector 14-11-2003 14:02:23

El Try/Except de tu ejemplo debe funcionar bien. Lo que pasa es que delphi, al momento de generar la excepcion, te esta deteniendo la ejecucion del programa.

Eso puedes solventarlo en Toos/Debugger Options/Language Exceptions -> Stop on delphi exceptions. Claro que, si corres el ejecutable fuera del IDE, el mensaje de error debe aparecer.

Ricsato 19-11-2003 01:39:16

Hola amigos, les agradezco a todos su ayuda, gracias!!!

pzala 19-11-2003 16:47:36

A mi resulto, pero alguien sabe cual es el codigo para el BORRAR..


Y por casulidad me podrian decir , si existe algun error que me diga si algun campo quedo vacio , cuando intente guardar.

:rolleyes:

roman 19-11-2003 16:54:15

Cita:

pzala comentó:
A mi resulto, pero alguien sabe cual es el codigo para el BORRAR..

VK_BACK - tecla "back space"
VK_DELETE - tecla "suprimir"

Cita:

pzala comentó:

Y por casulidad me podrian decir , si existe algun error que me diga si algun campo quedo vacio , cuando intente guardar.

Esta pregunta no tiene nada que ver con el presente hilo. Abre uno nuevo.

// Saludos

pzala 19-11-2003 17:14:58

GRACIAS-...........

quetzal 19-11-2003 17:20:04

para ser un poquito mas exacto

If Not (Key IN ['0'..'9',#8,'.']) then
key := #0

pzala 19-11-2003 17:31:05

MEJOR AUN... GRACIASSSSSS'''''''


La franja horaria es GMT +2. Ahora son las 06:33:28.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi