Ich hätte da noch dieses anzubieten.
Erstens ist es ja egal in welcher Reinfolge gelöscht wird ... weg muß es so, oder so.
Und dann kann man sich auch die Berechnung des Index des zu löschnden Eintrags ersparen, wenn man betrachtet daß alle zu löschenden Einträge an 2 bestimmten Punkten auf jeden Fall vorbeikommen müssen.
Delphi-Quellcode:
//Alle Einträge am Anfang der Liste löschen
If FLoopCount > 0 Then
While StringList.Count > FLoopCount do
StringList.Delete(0);
//Alle Einträge am Ende der Liste löschen
If FLoopCount > 0 Then
While StringList.Count > FLoopCount do
StringList.Delete(FLoopCount);