Где теги???
и по теме:
Код:
b.button1:=TButton.Create(a);
я подозреваю, что надо так:
Код:
b.button1:=TButton.Create(b);
====
Да, точно.
Ты ведь удаляешь (в таком порядке, я подозреваю)
1. a.button
2. a
3. b.button
4. b
поскольку b.button создан с владельцем a, то он и удалится вместе с ним.
После чего ты b.button (уже удалённый) пытаешься удалить снова.
На что он, собственно, и ругается.