"Man muss sich nach dem Aufruf dieser Funktion nämlich um die Freigabe der Stringliste kümmern." Wie genau macht man das?
Und das
raise? Das ruft doch eine
Exception auf, oder?
Wie das mit dem Freigeben geht, hat DeddyH ja gepostet. Es ist eig. der zweite von mir gepostete Code, jedoch anstatt eines "TStringList.Create" wird eben die entsprechende Funktion aufgerufen.
raise alleine löst keine
Exception aus, sondern wirft innerhalb eines except-Blocks nur eine bereits aufgetretene
Exception erneut aus. Ohne den try-except-Block können bei der 3. Variante Speicherlecks entstehen.
Aber das funktioniert doch auch mit TStringList so. Oder welchen Vorteil hat TStrings?
TStrings ist der abstrakte Vorgänger von TStringList und kann/sollte nicht erzeugt werden. Aber als Parametertyp ist es trotzdem praktisch, um andere Stringlisten als TStringList als Parameter zu erlauben.