Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   List index out of bounds (3) (https://www.clubdelphi.com/foros/showthread.php?t=45889)

esimon 17-07-2007 19:42:29

List index out of bounds (3)
 
Buena tarde para todos

Disculpen el mensaje ya se que hay hilos que trata del List Index pero ninguno pueden ayudarteme, porque el error que meda es cuando estoy corriendo la aplicacion que es "List index out of bounds (3)", estoy trabajando con delphi 7 y Access.

mil gracias ante manos.

delphi.com.ar 17-07-2007 19:49:56

Simplemente estas accediendo al item 3 de un array que no tiene item 3.

Te recomiendo activar el control de errores por el ide para ubicar donde se produce. Esto puedes hacerlo desde el menú Tools \ Debugger Options \ Language Exceptions \ Stop on Delphi Exceptions.

Saludos!

dec 17-07-2007 19:50:07

Hola,

El error indica que se está intentando acceder al elemento con índice 3 de una "lista", pero, dicho elemento no existe, sencillamente. O sea, existirá el elemento 0, el 1, el 2,... pero no el 3, y de ahí el error.

¿Cómo puedes solucionarlo? Pues depende... pero, en definitiva, se trata de controlar que no se accede a un índice que en realidad no existe, puesto que esto causaría una excepción como la que muestras.

Edito: Federico se me adelantó. :)

esimon 17-07-2007 20:12:21

mucha gracias por la repuesta eso era lo queria saber a pesar de que quiero resorver el problema, pero ya tengo una idea, otra cosa es que estoy tratando de poner a trabajar un programa que comenso otra persona y ya saben que tedioso es eso.

pero nada con la ayuda que me puedan brindan mas lo que puedas corregir ese puedes hacer.
mil gracias, Delphi y dec por la informacion, si lo soluciono le escribo

AzidRain 17-07-2007 20:38:18

Tambien tienes que tomar en cuenta que muchas listas de las que maneja Delphi son basadas en indices 0. Esto quiere decir que la numeracion no empieza en 1, sino en 0, de manera que si tienes 3 elementos quedan numerados: 0,1,2. De manera que si por error quieres acceder al 3er elemento y pones [3] en el indice, te arrojara el error ya que su numero es 2.

Esto tambien suele pasa al recorrer los indices con ciclos for por ejemplo ya que a menudo se olvida

Código Delphi [-]
  for c:=1 to lista.itemcount
     lista[c].item := algo;

Provoca el mismo error ya que itemcount contiene el numero de items de la lista, (en este caso 3)

lo correcto:


Código Delphi [-]
  for c:=0 to lista.itemcount-1
     lista[c].item := algo;

O bien:

Código Delphi [-]
  for c:=lista.itemcount-1 downto 0
     lista[c].item := algo;

esimon 18-07-2007 14:28:47

Mil gracias a todos en especial a Delphi.com.ar, dec y AzidRain, le agradesco mucho la ayuda prestada y tienen mucha razon ya resorvi el problema.

cuidense mucho y le agradesco :)


La franja horaria es GMT +2. Ahora son las 10:13:56.

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