EArgumentOutOfRangeException虽然没有改变TList

时间:2012-11-07 12:04:21

标签: delphi

我在Delphi中有另外一个关于TList的问题...... 我在访问TList时遇到EArgumentOutOfRangeException,就像我之前做的那样,在将不同的TList打印到控制台之后。

复制并粘贴下面的原始代码 - 没有更改单行

Writeln('c: '+inttostr(closed.Capacity)+' |l. 281');
  for i := 0 to open.Capacity-1 do
  begin
    Writeln('open: ' + open[i].startpunkt + open[i].endpunkt +
      IntToStr(open[i].kantenbewertung));
  end;
  Writeln('c: '+inttostr(closed.Capacity));
  Writeln('closed.capacity: '+inttostr(closed.Capacity));
  for i := 0 to closed.Capacity-1 do begin
  Writeln('closed: ' + closed[i].startpunkt + closed[i].endpunkt +
      IntToStr(closed[i].kantenbewertung));
  end;

Writeln('c: '+inttostr(closed.Capacity)+' |l. 281');显然已打印到控制台,for i := 0 to open.Capacity-1 do begin - 循环。

控制台输出是: c:2 | l。 281 打开:AC3 开放:BC4 开放:CD6 - 然后出现错误消息

应该是Dijkstra的alg实现的一部分。如果这有帮助。

有没有人发现我没有的错误?或者这是一些奇怪的特例?

1 个答案:

答案 0 :(得分:3)

Capacity与实际Count不同(可能更大)。