Da die Daten bereits sortiert erstellt werden, ist ein nochmaliges Sortieren nutzlos,
und da es bereits eine übergreifende/lobale Komponente gibt, kann man sie auch direkt verwenden,
...
also einfach direkt ins Memo einfügen.
Ja, ein Memo ist langsam, aber
* wieviele Zeilen werden es denn? (keine 10-tausende und mehr, oder?)
* und
TStrings.BeginUpdate
Ja, als Parameter die Liste durchreichen
oder die Liste
n als Result rausgeben (für ein einfacheres Speichermanagement als String-Array, anstatt als Listen-Komponente)
und schon kann man das Ergebnis in die Liste des Aufrufers einfügen/übernehmen.