Moin!
Zitat von
Robert_G:
noch ein Edit:
Sorgt die ListBox nicht von alleine für das Freigeben von TListBox.Items?
Da du Items das Ergebnis von foo übergibst, sollte das nicht dein Problem sein.
Ist es aber doch: Die ListBox hat intern seine eigene Instanz (öffentlich als Items bekannt). Bei der direkten Zuweisung von einem TStrings Derivat auf Items wird ein Assign() aufgerufen, also die interne Items Instanz übernimmt alle Einträge und killt die alten Einträge vorher. Mit anderen Worten: Nach der Zuweisung existiert weiterhin die alte interne Items Instanz und immernoch deine neue foo() Instanz. Daher muss man die von Foo() erzeugte Instanz freigeben danach - so wie die 2 Codebeispiele das schon machen...
MfG
Muetze1