Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Установка свойства Parent для TWebBrowser - нарушение работы [D5, D7, Win2k, WinXP]


VaDima ©   (2004-12-20 00:14:00) 

Изменение свойства Parent у TWebBrowser приводит к ошибочной работе контрола, если он уже размещен в каком-либо контейнере. Это вызвано тем, что метод RemoveControl вызывает разрушение Handle'а браузера.
// Напоминаю, что TWebBrowser.Parent возвращает IDispatch родительского объекта:
TWinControl(WebBrowser1).Parent := NewContainerControl;

Я нашел этому workaround, но ошибка остается, если устанавливается свойство Parent для КОНТЕЙНЕРА браузера.
Как ПЕРЕНЕСТИ TWebBrowser из одного контрола в другой?

Архив с демо-формочкой лежит по адресу: http://ma.com.ua/stuff/twebbrowser.rar


VaDima   (2004-12-21 18:57:00) [1]

Семен, извини за не вполне точно поставленный вопрос, более правильно он сформулирован в модуле демки. Перенести непосредственно TWebBrowser из одного парента в другой - не проблема. Сложности начинаются, когда мы изменяем парент для контрола, В КОТОРОМ находится TWebBrowser.
Кроме того, InsertControl'а для переноса контрола никак не достаточно.


Семен Сорокин   (2004-12-21 12:14:00) [2]

попробуй так вместо присвоения Parent:
NewContainerControl.InsertControl(WebBrowser1);


VaDima   (2004-12-21 12:03:00) [3]


> уничтожив старый и создать подобный ему новый

не годится: повторная загрузка (возможны большие документы), хистори (TravelLog)...
пофиксить никак?


KilkennyCat   (2004-12-20 03:13:00) [4]

уничтожив старый и создать подобный ему новый?


Наверх

Титульная страница Поиск, карта сайта Написать письмо