Noch lustiger: Ich ersetze also TStringList mit einem dynamischen Stringarray... Lasst Euch überraschen
Nebenbei: Die Ursache in TStringList zu suchen, halte ich für falsch, denn das wird ja in beiden Routinen aufgerufen. Ich kann die Berechnung der Gesamtlänge auch weglassen, schneller als die Konkatenation wirds damit auch nicht. Und dann wird in beiden Routinen GetTextStr gleich oft aufgerufen.