Ich sehe auf Anhieb keine Fehler.
Ich gehe aber aus, dass der Fehler evt. in der Load Methode liegt:
Delphi-Quellcode:
// load
List.Length := lngth;
Ist Length ein Property? Falls nicht -> Fehlerquelle!
Setzt der Setter von Length die Arraygröße - Falls nicht -> Fehlerquelle!
Beides ist der Fall ... :
property Length: Integer read Get_Length write Set_Length;
und ... :
Delphi-Quellcode:
function TItemList.Get_Length: Integer;
begin
// Dynamic arrays are zero-based !
Result := High(ItemList) + 1;
end;
procedure TItemList.Set_Length(const New_Length: Integer);
begin
SetLength(ItemList, New_Length);
end;