Wie erzeugst du die StringListe und wie gibst du sie wieder frei? das sind nicht ganz irrelevante Codeteile.
Diese Funktion ist eine protected-Funktion in einer Klasse. Ich benutze die TStringListe nur zur Übergabe an das Result. Für mehr nicht.
Ich würde aus der Funktion eine Prozedur machen, die ein TStrings-Objekt als Parameter annimmt. Somit ist die aufrufende Routine für die Instanzierung verantwortlich.
Das heißt, Du würdest bei Listen in einer Klasse, das ganze besser in eine Procedure in den Public-Teil packen ?