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;