Aslında uzun zamandır bu soru aklımda ama şimdiye sormaya zahmet ettim

bilindiği üzre TStrings veri tipi end of line seperatorleri ile ayrılmış string tipindeki veriler bütünü.
Ve kullanmadan önce Create metodu ile oluşturulması gerekiyor. Ve bellekten tasarruf için sonradan destroy edilmeli.
Şimdi; Tstrings tipinden değer döndüren bir fonksiyon oluşturduğumuzda veriyi döndürebilmek için.
Fonksiyon içinde ya da global olarak ana programda bir TStrings nesnesi oluşturmamız gerekiyor Aksi taktirde program hata verir.
Sonuc : TStrings tipi bir değişken olsun
Fonksiyon içinde oluşturduğumuz zaman result:=Sonuc
dedikten sonra veya demeden önce fonksiyon içinde sonuç değişkenini destroy etmemiz mümkün değil. Deerseniz gene hata vereceğini görürsünüz.
Bunu gözardı edip destroy işlemini yapmadık diyelim. O zaman otomatik destroy yoksa ve fonksiyon çok fazla kullanılan bir fonnksiyonsa ve her seferinde büyük değerler barındırıyorsa işimiz var demektir. O zaman Tstrings veri tipini program başlangıcında oluşturup program bitene kadar bir global değişkeni kullanmak çözüm olabilir (Dediğim gibi eğer fonksiyon bitiminde otomatik destroy yok ise)
Ama programınızda birden fazla hatta çok fazla TStrings ile işlem yapıp yine TStrings tipinde değer döndüren fonksiyonlar var ise global değişken tanımlamak kodun okunabilirliği ve programın sağlıklı çalışması için pek akıllıca bir çözüm olmayacaktır.
Fonksiyon bitiminde nesnenin otomatik destroy edildiğini düşünmüyorum çünkü sonuçta bu döndürülen değeri, fonksiyonu çağıran program bloğu da kullanıyor.
Sorum şu :
Fonksiyon içinde kullanlan TStrings nesnesi işi bittiğinde otomatik destroy ediliyor mu?.
edilmiyorsa işimiz bitiğinde fonksiyon içinde tanımlanan TStrings nesnesinin kullandığı belleği nasıl iade edebiliriz. Yani nasıl destoy edebiliriz.
Kolay gelsin.