Изменение свойства Parent у TWebBrowser приводит к ошибочной работе контрола, если он уже размещен в каком-либо контейнере.
Это вызвано тем, что метод RemoveControl вызывает разрушение Handle'а браузера.
// Напоминаю, что TWebBrowser.Parent возвращает IDispatch родительского объекта:
TWinControl(WebBrowser1).Parent := NewContainerControl;
Я нашел этому workaround, но ошибка остается, если устанавливается свойство Parent для КОНТЕЙНЕРА браузера.
Как ПЕРЕНЕСТИ TWebBrowser из одного контрола в другой?
Архив с демо-формочкой лежит
здесь