OOP in Delphi :: Whenever you need to use (create) an object in Delphi, you need to free the memory it consumed (once no longer needed). Surely, the try / finally memory guarding blocks can help you prevent memory leaks; it's still up to you to safe guard your code.
"Any given program will expand to fill all the available memory!" Is Murphy right? This article provides some common pitfalls and best practices for writing non - memory leaking Delphi code.
Read the full article Understanding and Preventing Memory Leaks in Delphi Applications
Related:


I use EurekaLog and enable memory leak detection.
When my Delphi app exits, an exception dialog appears if there were any memory leaks. It shows the stack trace and offending line, which I can double-click to edit in Delphi IDE.
All I do is add one line to my Delphi projects and check one box in the Eurekalog settings for the project.
I’m not affiliated with Eurekalog in any way, I’m just a very happy customer since I didn’t even know it had memory leak detection when I purchased it!