У всез компонентов есть своейство Components b и ComponentsCount;
Создай например глобальный объект ButtonOwner : TComponent; (не забудь создать в процедуре onCreate)
Код:
Procedure AddObject;
var
myObject:TButton;
begin
myObject:=TButton.Create(ButtonOwner);
myObject.Caption:='Test Button';
myObject.Parent:=Form1;
// и т.п.
end;
удаеление последней конпки будет выглядеть так
Код:
if ButtonOwner.ComponentsCount <> 0 then
ButtonOwner.Components[ButtonOwner.ComponentsCount - 1].Free;
Для удаления всех кнопок есть мтоде FreeAllComponents (если не путаю).
Но лучший вариант - воспользоваться списками TList или TObjList