Club Delphi  
    FTP   CCD     Enlaces   Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos


Respuesta
 
Herramientas Desplegado
  #1  
Antiguo 12-05-2008
jedinds jedinds is offline
Registrado
 
Registrado: may 2008
Posts: 5
jedinds Va por buen camino
validar el ingreso a un Edit solo numeros

hola

como puedo validar el ingreso a un Edit, solo ingreso de numeros
y si no se ingresa nada que salga un mesaje que no a ingresado numeros

saludos
Responder Con Cita
  #2  
Antiguo 12-05-2008
Avatar de brakaman
[brakaman] brakaman is offline
Miembro Premium
 
Registrado: ago 2006
Ubicación: Castellon - España
Posts: 196
brakaman Va por buen camino
Cita:
Empezado por jedinds Ver Mensaje
hola

Edit, solo ingreso de numeros
y si no se ingresa nada que salga un mesaje que no a ingresado numeros

saludos
Algo como esto.
Código Delphi [-]
procedure TForm1.EDit1KeyPress(Sender: TObject; var Key: Char);
begin
    if not (key in ['0'..'9','.',#8]) then
    begin
      key:=#0;
      showmessage('Por favor introduzca numeros')
    end
end;

Saludos
Responder Con Cita
  #3  
Antiguo 13-05-2008
Avatar de BlueSteel
[BlueSteel] BlueSteel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Talcahuano - Chile
Posts: 2.291
BlueSteel Va por buen camino
Cool

Hola,

Tambien puedes utilizar el componente de la JVC (Jedi).. el JvValidateEdit.. es muy bueno

y con respecto a esto

Cita:
Empezado por brakaman Ver Mensaje
Algo como esto.

Código Delphi [-]
procedure TForm1.EDit1KeyPress(Sender: TObject; var Key: Char);
begin
if not (key in ['0'..'9','.',#8]) then
begin
key:=#0;
showmessage('Por favor introduzca numeros')
end
end;
Saludos

creo que falta intervenir en el evento onExit del Edit1... para dar solución a esto

Cita:
y si no se ingresa nada que salga un mesaje que no a ingresado numeros
ya que si no presiona ninguna tecla, el mensaje anterior no aparecerá...

Código Delphi [-]
If Edit1.Text = '' Then
   ShowMessage('Debe ingresar un dato');

Salu2
__________________
BlueSteel
Responder Con Cita
  #4  
Antiguo 13-05-2008
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
You will suffer me.
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.708
ContraVeneno Va por buen camino
EL TjvValidateEdit ya viene preparado para manejar solo números, es gratis y muy funcional.
__________________

Responder Con Cita
  #5  
Antiguo 03-12-2008
Loreiev Loreiev is offline
Miembro
 
Registrado: oct 2008
Posts: 14
Loreiev Va por buen camino
Unhappy Validar un edit que sólo pueda tener números naturales

Hola, yo tengo un problema parecido, necesito validar un edit que puede tener sólo valores naturales desde el 1 hasta el 250 y quiero que, de ingresar un valor incorrecto lo corrija por 1. Hice este código:

Código Delphi [-]
 if not((Frmcartones.LbSelectorCarton.Text>=#49)and(Frmcartones.LbSelectorCarton.Text<=#57)) then Frmcartones.LbSelectorCarton.Text:=#49;
editformato;
EditarCarton(strtoint(LbSelectorCarton.Text));


Pero me salta el error:
Código:
EConverterror with message "is not a valid integer value"
porqué sigue apareciendo? no me estoy asegurando de que el valor sea entero?

El código del procedimiento EditarCarton es:


Código Delphi [-]
Procedure EditarCarton (num:integer);
var
i,j,k,l:integer;
Begin
 k:=0;
 l:= num - 1;
 for i:=0 to 8 do
 begin
  for j:=0 to 2 do
  begin
   numerocarton[l,k]:= strtoint(frmCartones.GrillaCarton.Cells[i,j]) ;
   inc(k);
  end;
 end;
end;

Última edición por Loreiev fecha: 03-12-2008 a las 03:44:57. Razón: error de formato
Responder Con Cita
  #6  
Antiguo 09-12-2008
Loreiev Loreiev is offline
Miembro
 
Registrado: oct 2008
Posts: 14
Loreiev Va por buen camino
Validar números naturales

Hola, nadie me ha contestado todabía, alguna sugerencia? No entiendo porque me sigue dando el mensaje de error después de haber validado los números.

Desde ya muchas gracias


Loreiev
Responder Con Cita
  #7  
Antiguo 09-12-2008
Avatar de Fenareth
[Fenareth] Fenareth is offline
Miembro Premium
 
Registrado: oct 2007
Ubicación: Guadalajara, Jalisco, México
Posts: 494
Fenareth Va por buen camino
Por el error que arroja me suena a que estás tratando de validar un Edit que está vacío...

Por lo tanto te dice que '' (espacio vacío) no es valor entero válido...

Saludos,
__________________
Ask questions. Think for yourself. Wake up and you’ll make the difference
Responder Con Cita
  #8  
Antiguo 10-12-2008
Loreiev Loreiev is offline
Miembro
 
Registrado: oct 2008
Posts: 14
Loreiev Va por buen camino
Question Error al validar por edit vacío

Cita:
Empezado por Fenareth Ver Mensaje
Por el error que arroja me suena a que estás tratando de validar un Edit que está vacío...

Por lo tanto te dice que '' (espacio vacío) no es valor entero válido...

Saludos,
Hola, gracias por contestarme. Es probable que sea como vos decís, un error debído a que está ingresándose un número vacío. Pero, mi pregunta es, con la instrucción que yo coloqué no debería evitar ese error? debo agregar algo más o el problema tiene que estar en otra parte?

Muchas gracias

Saludos
Responder Con Cita
  #9  
Antiguo 10-12-2008
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
You will suffer me.
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.708
ContraVeneno Va por buen camino
Prueba a agregar la función Trim, puede que el usuario esté escribiendo solo espacios, es decir:
Código:
 '     '
, con lo que tu validación fallaría.

Lo mejor sería utilizar un control que este diseñado específicamente para manejar números, con el TjvValidateEdit solo cambias dos propiedades y listo, no tendrías que hacer ninguna validación, ni hacer conversiones, ni programar nada.
__________________

Responder Con Cita
  #10  
Antiguo 11-12-2008
Loreiev Loreiev is offline
Miembro
 
Registrado: oct 2008
Posts: 14
Loreiev Va por buen camino
Cita:
Empezado por ContraVeneno Ver Mensaje
Prueba a agregar la función Trim, puede que el usuario esté escribiendo solo espacios, es decir:
Código:
 '     '
, con lo que tu validación fallaría.

Lo mejor sería utilizar un control que este diseñado específicamente para manejar números, con el TjvValidateEdit solo cambias dos propiedades y listo, no tendrías que hacer ninguna validación, ni hacer conversiones, ni programar nada.
Hola, gracias por contestar a mi duda. Probé agregar la función Trim pero no cambió nada. Agregué la instrucción:

Código Delphi [-]
if not((Frmcartones.LbSelectorCarton.Text <> '')and(Frmcartones.LbSelectorCarton.Text>=#49)and(Frmcartones.LbSelectorCarton.Text<=#57)) then Frmcartones.LbSelectorCarton.Text:=#49;
editformato;
auxiliar:= strtoint(Trim(LbSelectorCarton.Text));
EditarCarton(auxiliar);

y tampoco dió resultado. La verdad que estoy totalmente perdida, nose más que probar.
La opción de usar el componente TjvValidateEdit estaría muy buena, pero, aunque estube buscando por todos lados, dentro y fuera del foro. No logro instalarlo del paquete de jvcl -jedi. Si alguien me podría explicar de manera clara (estoy recién empezando en esto de programar con Delphi) le estaría muy agradecida. Y si no si se les ocurre que puedo probar, porque me quedé estancada en este punto y no puedo avanzar y calculo que es una pavada .

Desde ya muchas gracias
Responder Con Cita
  #11  
Antiguo 11-12-2008
Avatar de Fenareth
[Fenareth] Fenareth is offline
Miembro Premium
 
Registrado: oct 2007
Ubicación: Guadalajara, Jalisco, México
Posts: 494
Fenareth Va por buen camino
Porqué no haces la validación después de comprobar que el Edit no contiene un espacio vacío ???

Código Delphi [-]
if Edit.Text <> '' then
begin
   // Hace comprobación de que sean números
end;

Es una idea que podría ayudarte...

Saludos
__________________
Ask questions. Think for yourself. Wake up and you’ll make the difference
Responder Con Cita
  #12  
Antiguo 11-12-2008
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.636
Caral Va por buen camino
Hola
Yo uso el componente NumEdit.
Este componente contiene dos edit uno para int y otro para float.
La verdad es que son muy practicos.
Por si lo quieres aqui esta.
Saludos
Pd: se instala como cualquier componente, no es un paquete.
__________________
Siempre Novato

Última edición por Caral fecha: 15-12-2008 a las 21:13:21.
Responder Con Cita
  #13  
Antiguo 11-12-2008
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
You will suffer me.
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.708
ContraVeneno Va por buen camino
las JVCL la puedes encontrar aquí: http://sourceforge.net/project/showf...ckage_id=42327

La versión 3.35 es solo para delphi 2009, para las demás versiones debes de bajar la versión 3.34

El archivo que bajas tiene dos carpetas, JCL y JVCL, dentro de cada una de ellas, tienes un archivo que se llama "Install.bat". Primero ejecutas el Install.bat de la carpeta jcl (JCL\JCL\Install.Bat)y después ejecutas el install.bat de la JVCL (JVCL\Install.Bat) y en teoría eso sería todo.
__________________

Responder Con Cita
  #14  
Antiguo 12-12-2008
Loreiev Loreiev is offline
Miembro
 
Registrado: oct 2008
Posts: 14
Loreiev Va por buen camino
Error al validar por edit vacío

Muchas gracias a todos por sus respuestas. Finalmente puede instalar los componentes jedi!!! No sabía que la última versión era solo para delphi 2009, ese era el problema.
Ahora estoy utilizando el componente TJvValidateEdit pero aún sigue dando el mismo error. Debe haber algo mal en el código, porque la validación tiene que estar bien, no?
Ya probé verificar que el edit no tiene valor nulo cuando cambia su valor.
Bueno, voy a seguir probando, si alguien tiene alguna idea para darme será bien recibida.

Saludos
Responder Con Cita
  #15  
Antiguo 13-12-2008
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
You will suffer me.
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.708
ContraVeneno Va por buen camino
si ya estas utilizando un TjvValidateEdit, ya no es necesario ni validar nada, ni hacer conversiones, ni programar nada...

ahora, ¿en que parte del código te marca que error?
__________________

Responder Con Cita
  #16  
Antiguo 14-12-2008
fidel fidel is offline
Miembro
 
Registrado: mar 2005
Posts: 366
fidel Va por buen camino
Para validar edits vacíos y que no te de error al convertirlos en entero basta con poner un 0 (cero) delante del texto a convertir:

.... auxiliar:= strtoint(Trim( '0' + LbSelectorCarton.Text))
Responder Con Cita
  #17  
Antiguo 16-12-2008
Loreiev Loreiev is offline
Miembro
 
Registrado: oct 2008
Posts: 14
Loreiev Va por buen camino
Unhappy Sigue el error de edit vacío

Cita:
Empezado por fidel Ver Mensaje
Para validar edits vacíos y que no te de error al convertirlos en entero basta con poner un 0 (cero) delante del texto a convertir:

.... auxiliar:= strtoint(Trim( '0' + LbSelectorCarton.Text))
Hola, que tal? prové con eso de poner 0 pero tampoco funciona, sique saltando el error de que '' no es un valor entero válido.

Este error salta cuando cierro el formulario que muestra los cartones de lotería y te permite editarlos, al aceptar los cambios da error y marca el último close dentro de este procedimiento:

Código Delphi [-]
procedure TFrmCartones.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
 if MessageDlg('Desea guardar los cambios en el cartón?',
    mtConfirmation, [mbYes, mbNo], 0) = mrYes then
 begin
  if contfila then
  begin
   if not contnum then
   begin
    showmessage('El cartón debe tener 15 números',);
    exit;
   end
   else
   begin
    if not cartondistinto then showmessage('Ese cartón ya existe')
    else
    begin
     editformato;
     EditarCarton(0+lbNumeroCarton.Value);
    end;
   end;
  end;
 end;
 Close;
end;

El código de Editar cartón es:

Código Delphi [-]
Procedure EditarCarton (num:integer);
var
i,j,k,l:integer;
Begin
 k:=0;
 l:= num - 1;
 for i:=0 to 8 do
 begin
  for j:=0 to 2 do
  begin
   numerocarton[l,k]:= strtoint(frmCartones.GrillaCarton.Cells[i,j]) ;
   inc(k);
  end;
 end;
end;


Bueno, si necistás más información avisame. Porque yo sigo igual de perdida con esto.

Gracias por sus respuestas

Última edición por Loreiev fecha: 16-12-2008 a las 01:22:32. Razón: error de formato
Responder Con Cita
  #18  
Antiguo 16-12-2008
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
You will suffer me.
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.708
ContraVeneno Va por buen camino
cambia el "Close" donde te marca el error por "Action := caFree;"
__________________

Responder Con Cita
  #19  
Antiguo 17-12-2008
Loreiev Loreiev is offline
Miembro
 
Registrado: oct 2008
Posts: 14
Loreiev Va por buen camino
Cita:
Empezado por ContraVeneno Ver Mensaje
cambia el "Close" donde te marca el error por "Action := caFree;"
Hola, prové lo que me dijiste pero sigue dando el mismo error, sólo que ahora marca la sentencia: Action := caFree;
Se te ocurre que puede ser?

Desde ya muchas gracias
Responder Con Cita
  #20  
Antiguo 17-12-2008
fidel fidel is offline
Miembro
 
Registrado: mar 2005
Posts: 366
fidel Va por buen camino
un 0 (cero) delante de un valor númerico no sirve para nada
EditarCarton(0+lbNumeroCarton.Value);

Tienes que ponerlo como caracter, entre comillas a la hora de
transformar el string a número para que si el edit estáa vacio
no de error al transformar un string vacio.
Creo que serría en esta línea.
numerocarton[l,k]:= strtoint('0' + frmCartones.GrillaCarton.Cells[i,j]) ;
Responder Con Cita
Respuesta


Herramientas
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Solo letras y numeros en edit oesteve OOP 30 28-06-2013 22:30:43
Validar numeros y letras en un Edit? danytorres Varios 12 12-11-2010 22:42:27
Validar Ingreso De Letras En Un Edit sdiaz1983 Varios 10 21-03-2008 02:16:33
Validar Edit solo Texto Elite237 OOP 13 28-07-2007 22:45:25
como se puede validar un edit para solo numeros carlos gonzalez Varios 3 30-09-2006 22:22:38


La franja horaria es GMT +2. Ahora son las 01:02:56.


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