Naja, ich meine das du eine kleine Klasse machst wie folgt:
Delphi-Quellcode:
TBaseItem = class
private
// Felder
end;
TBaseList = class
private
fFilename : AnsiString;
fLength : integer;
fItems : array of TBaseItem;
protected
procedure setitem(item: TBaseItem, index: Integer); virtual;
function getitem(index: Integer): TBaseItem; virtual;
function additem(): TBaseItem; virtual;
// Array-Property evtl.
end;
Und dann später sowas:
Delphi-Quellcode:
TMyItem = class (TBaseItem)
// Felder
end;
TMyList = class(TBaseList)
protected
function getitem(index: Integer): TMyItem; override; // inherited aufrufen und casten
function additem(): TMyItem; override; // tmyitem erstellen !!
end;
Dann kannst du die sachen mit add und delete schon in der Basisklasse machen, und kannst trotzdem später die richtigen Klassen in das Array reinfüllen. Du musst natürlich immer über die überschriebenen Funktionen gehen (das Array ist ja eh private) damit du auch schon den richtigen Typ casten kannst.