Wenn Du Move verwendest, geht es noch schneller und ist weniger Code = weniger anfällig:
Delphi-Quellcode:
procedure TFeldliste.DeleteField(Index: Integer);
var i,l : integer;
begin
L := length(FListe);
if index < L-1 Then
move (fListe[Index + 1], fListe [Index], SizeOf (Fliste[0])* (L - Index - 1));
setlength(Fliste, length(fliste)-1);
End;
Aber ehrlich, ich verstehe nicht, was hier viele 'Experten' gegen eine TList haben. Das ist doch schnell genug und macht das alles schon. Ich kenne nicht allzuviele Anwendungen, die so zeitkritisch sind, das man sich ein TExtremelyFastList bauen müsste.
Wenn ich die vorgefertigten Klassen von Delphi nehme, habe ich doch ein paar Sorgen weniger, weil das schonmal funktioniert... Und wenn ich Performanceprobleme bekomme, dann nehme ich mir einen Profiler. Der zeigt mir die Bottlenecks. Wenn TList der Bösewicht ist, wird ausgetauscht. Aber nur dann...