Visual Basic - Desbordamiento

Life is soft - evento anual de software empresarial
 
Vista:

Desbordamiento

Publicado por Alvaro (85 intervenciones) el 23/06/2008 15:00:53
Hola muy buenas, tengo un picture(picture1) que dentro contiene otro picture(pic_imagen) que se me carga tantas veces como registros tengo en una tabla de mi base de datos. Como no se el numero total de picture que se me van a cargar porque varia segun los registros que tenga, el picture(picture1) que contiene a este otro picture(pic_imagen) le voy aumentando el tamaño para despues con un vscroll ir cambiando la propiedad top del picture1 y asi poder ver todos los picture que se me han cargado. Aqui es donde tengo el problema porque cuando tengo muchos picture cargados en el picture1 me da un error de desbordamiento. Les pongo el codigo que utilizo para ver si me pueden ayudar ya que llevo bastante tiempo y no se como darle solucion a este problema.

Picture1.Top = -vbscroll1.value*200

Cuando el vbscroll1.value es igual a 164 me da el error de desbordamiento.

Me seria de gran ayuda toda la informacion que me puedan dar. Muchas gracias de antemano.
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:Desbordamiento

Publicado por igor (633 intervenciones) el 23/06/2008 22:21:53
La respuesta es muy sencilla.

Aunque no he entendido muy bien lo de picture... el problema es con el número.

Si tenemos 164*200 = 32800
163*200 = 32600

Un entero con signo puede tener 2^16 números de -32768 a 0 y de 0 a 32767. Cuando calcules un número mayor que 32767 se desborda, pasaría a -32768 y VB te da un error.

Si quieres llegar a ser un buen programador es recomendable saber los rangos numéricos que podemos manejar. En los límites es donde se producen los errores, en los límites y también con los signos.

Si sabes algo de binario tomate el tiempo que necesites para en un papel poner los números de byte, entero, entero largo, etc, con y sin signo (el signo es el último bit). Te darás cuenta de muchos de los problemas que te surgirán.
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