Probier es einfach aus.
Delphi-Quellcode:
Var C: LongWord;
S: String;
i: Integer;
Begin
S := '';
C := GetTickCount;
For i := 1 to 50000000 do S := S + 'a';
Memo1.Lines.Add(IntToStr(GetTickCount - C));
S := '';
C := GetTickCount;
SetLength(S, 50000000);
For i := 1 to 50000000 do S[i] := 'a';
Memo1.Lines.Add(IntToStr(GetTickCount - C));
End;
PS: die Zeit steigt übrigens Exponential an, wärens es ansonsten (nur einmal Speicher reservieren) Linear wäre.
S:=S+'a'; bedeutet soviel, wie neuen String anlegen, beide Teile reinkopieren, alten String freigben und den neuen String an die Variable übergeben.