Varför får jag felet "List index out of bounds (xxx)" i den här koden:
procedure BackgroundAnim;
var
I : Integer;
AStar : PStar;
begin
if Starfield.Count < 256 then begin
New(AStar);
AStar^.X := 640 / 2;
AStar^.Y := 480 / 2;
AStar^.VelX := (Random(256)-128)/100;
AStar^.VelY := (Random(256)-128)/100;
Starfield.Add(AStar);
end;
Anim := 0;
for I := 0 to Starfield.Count-1 do begin
AStar := Starfield.Items[I];
AStar^.X := AStar^.X + AStar^.VelX;
AStar^.Y := AStar^.Y + AStar^.VelY;
MainForm.DXDraw.Surface.Canvas.Pixels[Round(AStar^.X), Round(AStar^.Y)] := clWhite;
if ((AStar^.X < 0) or (AStar^.X > 640)) or
((AStar^.Y < 0) or (AStar^.Y > 480)) then
Starfield.Delete(I); [b]<--- Det är här felet uppstår!!!!!!!!!!![/b]
end;
MainForm.DXDraw.Surface.Canvas.Release;
end;