Ver Mensaje Individual
  #8  
Antiguo 18-12-2012
Avatar de Cristhor1982
Cristhor1982 Cristhor1982 is offline
Miembro
NULL
 
Registrado: dic 2012
Posts: 60
Reputación: 12
Cristhor1982 Va por buen camino
Cita:
Empezado por nlsgarcia Ver Mensaje
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.
Muchas Gracias, de gran ayuda...ya lo solucione
Responder Con Cita