No, memory is *not* automatically freed in Delphi (no garbage collection). What you are experiencing works only with VCL components/objects. Every VCL component derives from the TComponent class. The TComponent constructor takes another object as its "owner", to which it registers itself (you can see which objects are "owned" by a particular class by reading the ComponentCount and Components property). Whenever a VCL object is freed it automatically frees all the objects that it owns, and informs its owner that it has been freed. In this way you can create a form object with no owner, then create a bunch of components (buttons, labels, etc) with the form as their owner. When the form is freed it automatically frees all the components attached to it (though you shouldn't confuse Owner with Parent).