Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: ActiveX/СОМ/CORBA > WebBrowser frozen...


Автор: December 8.11.2004, 02:15
Greetings All!
После перенаправления нового окна бродилки на новый TWebBrowser объект с помощью конструкции
Код

procedure TfrSingleBrowser.WebBrowser1NewWindow2(Sender: TObject;
 var ppDisp: IDispatch; var Cancel: WordBool);
begin
ppDisp:=IDispatch(WebBrowser1.OleObject);
...

возникает такая проблема: WebBrowser1, когда попадает в область видимости на мониторе, не показывает своего содержимого, не реагирует на клики, клаву - короче, отмораживается smile Однако, если форму отресайзить, то WebBrowser1 просыпается и начинает вести себя по-человечески (то есть, как и должен). Вопросы:
1) Почему это происходит?
2) Как грамотно оживить TWebBrowser?
Заранее спасибо.

Автор: p0s0l 10.11.2004, 23:42
Цитата(December @ 8.11.2004, 02:15)
После перенаправления нового окна бродилки на новый TWebBrowser объект с помощью конструкции
А где там новый TWebBrowser ? У тебя WebBrowser1 открывает новое окно в этом же WebBrowser1... Или так и задумано ?

Что-то у меня не получилось забацать такой случай (что при открытии в этом же WebBrowser'е, что в новом...) - всё нормально получается, и не виснет... Код 1:1 как у тебя...
Возможно дело в чём-то другом... Может где какое хитрое событие повешено ?

Если что, вышли мне исходник...

Автор: December 11.11.2004, 20:52
Да... Вот такие пироги получились...
Проблема была в том, что новый браузер создавался динамически, являясь частью фрейма. При этом почему-то не инициализируется WebBrowser.ParentWindow в нужное значение, и когда я ручками в новосозданном фрейме добавляю эту связь, то всё раюотает нормально.
P0s0l, спасибо за участие в теме smile

Автор: December 12.11.2004, 23:18
Упс, рано обрадовался... Щас буду демку делать smile

Автор: p0s0l 13.11.2004, 13:39
Ну, ждём дему smile

Автор: December 14.11.2004, 03:04
Мне вот дико интересно, это мелкомягкие такой кривой АктивХ сделали (точно, что Х...), или же Борланд ТАК криво импортнул? Исконный вопрос - кто виноват? smile Сорри за лиротступ smile
После длительных пыток и издевательств ад кодом на операционном столе выяснилось, что причиной заморозки WebBrowser'a является TImage smile Точнее, его исчезновение с поля боя. Итак жил-был Frame, в котором гнездились TWebBrowser (Align=alClient) и TImage (Align=alBottom). Сценическая роль объекта TImage заключается в появлении себя, любимого, во время загрузки страницы, с ползунком, отражающим прогресс загрузки (кто ещё не понял, Opera Software может подать на меня в суд за плагиат). По окончании загрузки объект TImage, ессно, исчезает... Так вот, если действо вершится на видимом фрейме, то всё гладко и стабильно. Но если операция происходит во фрейме, которй в данный момент сокрыт от глаз наблюдателя, то исчезновение Image1 (Image1.Visible:=false) приводит к заморозке WebBrowser1... до тех пор, пока не осуществлялся Resize формы.
Вот такие беляши с собачками...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)