TObjectList laesst keine Luecken zu, glaub mir. Machen wir mal so was:
Delphi-Quellcode:
var
MyList: TObjectList;
MyObject: TObject;
begin
MyList := TObjectList.Create();
MyList.Add(TObject.Create());
MyList.Add(TObject.Create());
MyList.Add(TObject.Create());
MyList.Add(TObject.Create());
MyList.Add(TObject.Create());
// Nun setzen wir das Element mit dem Index 1 auf NIL
MyList.Items[1] := nil;
// Und jetzt sehen wir uns mal den Inhalt davon an:
MyObject := MyList.Items[1];
MyList.Free();
end;
Und, kommt beim Zugriff auf MyList.Items[1] eine
AV? Nein: Das Element mit dem Index 1 existiert; es ist aber 0. Das heisst, dass dort keine Luecke ist, es steht nur eben Schwachsinn in der Liste. Du kannst Elemente, die nil sind, als Luecken betrachten, es sind aber nicht wirklich Luecken, schliesslich kannst du auch direkt aufs Element zugreifen. Wenn der Index nicht existieren wuerde, dann waers ne Luecke, aber so nicht
Das ist jetzt allerdings Wortklauberei
Greetz
alcaeus