Esto... yo no es por fastidiar... o si

, pero el TString tiene definido el método Move
Código Delphi
[-]
procedure Move(CurIndex: Integer; NewIndex: Integer); virtual;
Use Move to move the string at position CurIndex so that it occupies the position NewIndex. The positions are specified as 0-based indexes. For example, the following lines of code move the string in the first position to the last position
MyStringsObject.Move(0, MyStringsObject.Count)
Saludos