Ver Mensaje Individual
  #5  
Antiguo 18-12-2012
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Reputación: 21
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
Cristhor1982,

El problema es que estas tratando de accesar una posición de memoria no asignada a una lista, por ejemplo:
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
   i : Integer;
   StrList : TStringList;
begin
   StrList := TStringList.Create;
   for i:= 0 to 9 do
      StrList.Add(IntToStr(i));

   for i := 0 to 10 do
      ShowMessage(StrList.Strings[i]);
end;
En el código anterior se asignan 10 elementos (0 al 9) a una variable tipo TStringList y luego se trata de leer 11 elementos (0 al 10), lo cual produce el error List index out of bounds (10), el valor entre paréntesis (En este caso 10) es la posición de memoria que esta fuera de los límites asignados a la lista (Posición 11), lo cual es lógico dado que la lista solo tiene 10 elementos. La forma correcta de accesar la lista es dentro de los límites de la misma, por ejemplo:
Código Delphi [-]
   for i := 0 to StrList.Count-1 do
      ShowMessage(StrList.Strings[i]);
Igualmente si tratáramos de asignar un valor negativo al índice de la lista, por ejemplo -1, nos daría el error List index out of bounds (-1) por las mismas razones comentadas anteriormente.

Espero sea útil

Nelson.

Última edición por nlsgarcia fecha: 18-12-2012 a las 17:15:27.
Responder Con Cita