Schreib es in eine TStringList und am Ende nur ein Memo.Text := StringList.Text;
Bei meinen Messungen hat folgende Vorgehensweise einen Faktor 50 an Geschwindigkeit gebracht:
Delphi-Quellcode:
var
stringlist : TStringList;
...
// stringlist befüllen
...
Memo1.Lines.Assign(stringlist);
Maximale Geschwindigkeit lässt so so erreichen:
Delphi-Quellcode:
// 100000 Zeilen in weniger als 0,5 Sekunden
var
s : TStringList;
i : Integer;
begin
s := TStringList.Create;
for i := 1 to 100000 do
s.Add(Format('Zeile %d',[i]));
SendMessage(Memo1.Handle, WM_SETTEXT, 0, Longint(s.Text));
s.Free;
end;