Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 15-05-2013
darkmaster360 darkmaster360 is offline
Miembro
NULL
 
Registrado: may 2013
Posts: 12
Poder: 0
darkmaster360 Va por buen camino
Error: Is not a valid integer value

Saludos.

Tengo un SpinEdit y al borrar el texto me salta el error: Is not a valid integer value.

Estuve mirando en google, en algunos temas de este foro pero nada, y de otras páginas en inglés y probando los códigos que mencionaban pero no me sirvió ninguno. Le puse este:
Código Delphi [-]
procedure TForm1.SpinEdit1Change(Sender: TObject);
begin
    Timer1.Interval := SpinEdit1.Value;
     try
    A := StrToIntDef(SpinEdit1.Text, 0)
  except
    on Exception : EConvertError do
      ShowMessage(Exception.Message);
  end;
  end;

Pero nada me sigue apareciendo. ¿Alguna solución?
Responder Con Cita
  #2  
Antiguo 15-05-2013
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
he probado el ejemplo que pones y si me funciona bien
lo que no colocas es que tipo de Variable es "A"
quiza ahi este el problema
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #3  
Antiguo 15-05-2013
darkmaster360 darkmaster360 is offline
Miembro
NULL
 
Registrado: may 2013
Posts: 12
Poder: 0
darkmaster360 Va por buen camino
Hola oscarac

El tipo de variable lo puse al principio:
Código Delphi [-]
implementation

var
A: integer;

Pero se me olvido añadirlo
El código no me funciona, al borrar el texto del spinedit me salta el error, o al cambiar el número escribiendo otro.

Saludos.
Responder Con Cita
  #4  
Antiguo 15-05-2013
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
mmm dejame revisar
__________________
Dulce Regalo que Satanas manda para mi.....

Última edición por oscarac fecha: 15-05-2013 a las 21:27:51.
Responder Con Cita
  #5  
Antiguo 15-05-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Darkmaster360.

Código Delphi [-]
procedure TForm1.SpinEdit1Change(Sender: TObject);
begin
    Timer1.Interval := SpinEdit1.Value;
end;
Siendo la propiedad Value de tipo Integer, no hay manera de que la porción de código anterior te dé el error "Is not a valid integer value".

¿ No te sirve hacer ?
Código Delphi [-]
   A := SpinEdit1.Value;
Por que supongo que el error se dispara cuando ingresas un número decimal...

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 15-05-2013 a las 21:35:51.
Responder Con Cita
  #6  
Antiguo 15-05-2013
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
prueba haciendo esto

Código Delphi [-]
procedure TForm1.SpinEdit1Change(Sender: TObject);
var i,c:integer;
var s:string;
begin
 begin
   s:=Tspinedit(sender).text;
   val(s,i,c);
   if c <> 0 then
   begin
     Tspinedit(sender).value:=Tspinedit(sender).tag;
     beep;
   end
   else
     Tspinedit(sender).tag:=i;
 end;
end;
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #7  
Antiguo 15-05-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola de nuevo.

Me quedé con la duda (por que coincido con oscarac que el código no tendría que dar error) y la única forma que pude reproducir la excepción con cadena vacía fue así:
Código Delphi [-]
procedure TForm1.SpinEdit1Change(Sender: TObject);
var
  A: Integer;
begin
  Caption := IntToStr(SpinEdit1.Value);
  A       := StrToInt(SpinEdit1.Text)
end;
Pero de ningún modo usando la función StrToIntDef ya que si no se puede realizar la conversión el valor devuelto es el designado por defecto (0).

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #8  
Antiguo 15-05-2013
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
Hola Ecfisa
lo que comenta el amigo, es que si en el SpinEdit presionas la tecla Del o Supr
ahi genera el error, ya lo probe y efectivamente aparece el error
pero con el codigo que le puse ya no aparece
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #9  
Antiguo 15-05-2013
darkmaster360 darkmaster360 is offline
Miembro
NULL
 
Registrado: may 2013
Posts: 12
Poder: 0
darkmaster360 Va por buen camino
Hola a todos.

Gracias oscarac tu código me funciono
No se parece en nada a otros que encontré en los demás sitios que mire. Gracias a ti también ecfisa

Saludos.
Responder Con Cita
  #10  
Antiguo 15-05-2013
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
de nada
me alegra haber sido de ayuda
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #11  
Antiguo 15-05-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
Empezado por oscarac Ver Mensaje
Hola Ecfisa
lo que comenta el amigo, es que si en el SpinEdit presionas la tecla Del o Supr
ahi genera el error, ya lo probe y efectivamente aparece el error
pero con el codigo que le puse ya no aparece
Si si Oscar, eso mismo creí entender.

Pero por mas que intenté no pude lograr el error con el código que nos menciona:
Código Delphi [-]
procedure TForm1.SpinEdit1Change(Sender: TObject);
var
  A: Integer;
begin
  Timer1.Interval := SpinEdit1.Value;
  A := StrToIntDef(SpinEdit1.Text, 0)
end;
(Omití el bloque de protección try ... except por que no hace al error)

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #12  
Antiguo 15-05-2013
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Código Delphi [-]
procedure TForm1.SpinEdit1Change(Sender: TObject);
var
  A: Integer;
begin
  Timer1.Interval := SpinEdit1.Value;
  A := StrToIntDef(SpinEdit1.Text, 0)
end;

¿Para qué demonios sirve ahí la variable "A"?
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #13  
Antiguo 15-05-2013
darkmaster360 darkmaster360 is offline
Miembro
NULL
 
Registrado: may 2013
Posts: 12
Poder: 0
darkmaster360 Va por buen camino
Se me olvido una cosilla..

Esta línea:
Código Delphi [-]
Timer1.Interval := SpinEdit1.Value;

Donde la incluyo en el código de oscarac:
Código Delphi [-]
procedure TForm1.SpinEdit1Change(Sender: TObject);
var i,c:integer;
var s:string;
begin
 begin
 Timer1.Interval := SpinEdit1.Value;
   s:=Tspinedit(sender).text;
   val(s,i,c);
   if c <> 0 then
   begin
     Tspinedit(sender).value:=Tspinedit(sender).tag;
     beep;
   end
   else
     Tspinedit(sender).tag:=i;
 end;
end;

Porque probé y aunque pueda cambiar el número del spinedit no cambia el intervalo del timer

Saludos
Responder Con Cita
  #14  
Antiguo 15-05-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola darkmaster360.

Sigo insistiendo que este código no tendría que darte problemas:
Código Delphi [-]
procedure TForm1.SpinEdit1Change(Sender: TObject);
var
  A: Integer;
begin
  Timer1.Interval := SpinEdit1.Value;
  A := StrToIntDef(SpinEdit1.Text, 0)
end;

Pero bueno... Este es otro modo de hacer lo mismo que consultas:
Código Delphi [-]
procedure TForm1.SpinEdit1Change(Sender: TObject);
var
  A: Integer;
begin
  Timer1.Interval := SpinEdit1.Value;
  if not TryStrToInt(SpinEdit1.Text, a) then
    A := 0;
end;
Y también tengo la misma intriga que dec... ¿ Para que es toda esa movida de la variable "A" ?

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #15  
Antiguo 15-05-2013
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
Cita:
Empezado por ecfisa Ver Mensaje
Y también tengo la misma intriga que dec... ¿ Para que es toda esa movida de la variable "A" ?
quiza la utiliza en otra instancia
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #16  
Antiguo 15-05-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
Empezado por oscarac Ver Mensaje
quiza la utiliza en otra instancia
Si, seguramente es así. Pero lo que no me queda claro es por que complicarse con la conversión de la propiedad Text si ya tiene el valor como entero en la propiedad Value.

Y como le sugerí en el mensaje #5, basta con hacer
Código Delphi [-]
   A := SpinEdit1.Value;
para tener asignado el valor en la variable "A" sin la posibilidad de errores de conversión.

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #17  
Antiguo 16-05-2013
darkmaster360 darkmaster360 is offline
Miembro
NULL
 
Registrado: may 2013
Posts: 12
Poder: 0
darkmaster360 Va por buen camino
Hola ecfisa.

El código que puse al principio si que me funcionaba pero me daba error porque tenía la línea:
Código Delphi [-]
Timer1.Enabled := SpinEdit1.Value;

Es esa línea probé quitandola y me funciona el código pero no me sirve el spinedit si no me cambia el intervalo del timer, también probé con los demás que me habéis ido pasando y me pasa lo mismo es esa línea.

También probé poniendo lo que me proponías en el mensaje #5 de poner:
Código Delphi [-]
A := SpinEdit1.Value;

Pero me sigue dando error

Saludos
Responder Con Cita
  #18  
Antiguo 16-05-2013
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Cita:
Empezado por oscarac Ver Mensaje
quiza la utiliza en otra instancia
No lo entiendo: ¿no se trata de una variable local del procedimiento? ¿Cómo puede usarse fuera del mismo entonces?
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #19  
Antiguo 16-05-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
Empezado por darkmaster360 Ver Mensaje
Hola ecfisa.

El código que puse al principio si que me funcionaba pero me daba error porque tenía la línea:
Código Delphi [-]
Timer1.Enabled := SpinEdit1.Value;

Es esa línea probé quitandola y me funciona el código pero no me sirve el spinedit si no me cambia el intervalo del timer, también probé con los demás que me habéis ido pasando y me pasa lo mismo es esa línea.

También probé poniendo lo que me proponías en el mensaje #5 de poner:
Código Delphi [-]
A := SpinEdit1.Value;

Pero me sigue dando error

Saludos
Hola.

La verdad, no sé que decirte. Será la versión de Delphi o un problema de instalación ...

No veo manera que la propiedad Value de tipo Integer genere el error "Is not a valid integer value" cuando se le está asignando su contenido a una variable de tipo Integer...

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
Respuesta



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
Is not a valid integer value joancmb Varios 9 19-03-2013 14:10:58
dbedit con editmask, Error : is not a valid date osmar Conexión con bases de datos 4 09-02-2006 15:19:17
error de Is not valid float point value para un TCheckBox.... uper Varios 3 20-10-2005 20:49:22
Error: metafile is not valid SGL Impresión 0 10-06-2005 11:19:58
Error: " is not a valid integer value MiLLeNPuNk Varios 2 20-02-2005 11:55:57


La franja horaria es GMT +2. Ahora son las 15:03:50.


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
Copyright 1996-2007 Club Delphi