Die TStringList ist natürlich beim Auslesen einer kompletten Datei und gleichzeitigem Zerlegen in einzelne Zeilen von Vorteil.
Aber das Grundproblem ist dennoch eine andere Stelle.
Wenn man mehrere Textstrücke zu einer Variable zusammensetzen will, dann sollte man das auch "zusammensetzen" und nicht jedesmal "überschreiben"!
TStringList.Text macht das intern ja auch und setzt alle Zeilen zu einem String zusammen.