StringList ist nun mal kein String. Ich vermute mal, die Entwickler haben sich halt gedacht, wenn Jemand bei StringList mit + neues hinzufügt, dass dann gleich ein neuer Satz/Zeile etc. sozusagen gemeint ist. So wie eben bei der ListBox mit Add. Anders gesagt: + ist bei StringList teils nichts anderes als ein Add Befehl. Wenn Du willst, dass alles in einer Zeile hinzugefügt wird (wobei Zeile vermutlich nicht der Richte Begriff in dem Fall ist), dann musst es im Befehlen es in der gleichen Zeile hinzuzufügen:
Code: Alles auswählen
procedure TForm1.Button1Click(Sender: TObject);
var sl: TStringList;
begin
sl := TStringList.Create;
sl.Add(''); // Damit wird eine Zeile hinzugefügt. Ansonsten gibt es keine und die nächste Code-Zeile würde sofort zur Fehlermeldung führen. Weil es außerhalb der Listenlänge dann wäre.
sl[0] := sl[0]+'1'; // Somit wird in der Zeile 0 der Inhalt von Zeile 0 plus die 1 hinzu gefügt.
sl[0] := sl[0]+'2';
sl[0] := sl[0]+'3';
sl[0] := sl[0]+'4';
sl[0] := sl[0]+'5';
WriteLn(sl.Text);
WriteLn(Length(sl.Text));
sl.free;
end;
Dies sollte dann funktionieren.
Edit:
Sinnvoller wäre aber am Schluss dann vermutlich dieser Code:
Also '[0]' anstelle von '.Text'.