Delphi-Quellcode:
FArray[i] := '';
Move(FArray[i + 1], FArray[i], (Count - 1 - i) * SizeOf(Pointer));
Pointer(FArray[Count - 1]) := nil;
SetLength(FArray, Count - 1);
Aber, wie gesagt, nimm lieber eine Stringliste .. diese ist nur unwesentlich größer, der Overhead ist minimal und man erspart sich viel Arbeit und eventuelle Probleme und nur ein Delete(i) wäre auch verständlicher.
Und vorallem, wenn man nciht genau weiß was man macht und warum, ist es eh keine gute Idee Automatismen (wie die delphiinterne Speicherverwaltung/Referenzzählung) zu manipulieren.