Небольшое уточнение. Для VCL объектов (унаследованных от TObject) за освобождение памяти отвечает компонент-владелец (Owner). То есть можно создать кнопку на форме, сделав саму форму не только родителем, но и владельцем, что избавит от необходимости удаления этой кнопки вручную:
TButton* btn = new TButton(this); // код выполняется в методе текущей формы: btn->Owner = this
btn->Parent = this; // а здесь присваиваем родителя - это тоже наша форма...
В этом случае кнопка удалится (высвободится из памяти) сама при удалении формы (в деструкторе TComponent).
Конечно, всегда можно удалять и вручную (оператором delete).