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


Автор: Гость_Игорь 15.12.2005, 23:58
В программе два WebBrowserа, можно ли при щелчке по сылке в одном браузере загружалось бы информация (html файл) в один браузер одна, в другой браузер другая, т.е. по одному щелку загружались две разные страницы в разные браузеры?

Автор: December 16.12.2005, 00:14
Конечно, лови OnBeforeNavigate и делай всё что тебе нравится. Например, напиши более подробно, что тебе нужно smile

Автор: Гость_Игорь 16.12.2005, 09:41
Так и сделал, но при этом в двух браузерах загрузились одинаковые офайлы, как сделать чтоб загрузились разные html файлы?

Подробнее: у меня два окна (браузера) - одно окно выполняет функцию шапки, второе функцию вывода информации.
Щелкаем по сылке в первом браузере -> загружается информация во второй браузер (html файл), в первом же браузере (шапка) тоже загружается информация, но из другого html файла, т.е. прооисходит загрузка сразу двух html файлов.

Автор: December 16.12.2005, 11:06
Ну дык, в чём проблема? Тебе надо как-то определить, какие два файла должны загрузиться в бродилки. Юзер кликает на линке, происходит OnBeforeNavigate, ты определяешь, где должны быть какие урлы
url1:=URL;
url2:='bbb.html';
и запускай их:
WebBrowser1.Navigate(url1);
WebBrowser2.Navigate(url2);


Цитата
при этом в двух браузерах загрузились одинаковые офайлы

ты, вероятно, сделал так:
WebBrowser1.Navigate(URL);
WebBrowser2.Navigate(URL);

Автор: Guest 17.12.2005, 15:57
December я так и делал, но при этом ошибка, идет переполнения стека.
Да и у меня в шапке более одной сылки. Получается мне надо узнать по какой я сылке щелкнул и передать одному браузеру одну сылку, а в шапке загрузить свою страницу.

Автор: December 17.12.2005, 16:39
Цитата(Guest @ 17.12.2005, 15:57)
но при этом ошибка, идет переполнения стека.

Да, я не совсем точно выразил мысль. Суть сводилась к тому, что тебе нужно ручками проанализировать, на какой ссылке ты шёлкнул, на основании этого выяснить, какие урлы должны куда пойти, и ручками их вызвать. При этом если URL<>url1, то надо сначала отменить текущий переход (Cancel:=true), иначе получится, что ты рекурсивно вызываешь OnBeforeNavigate (отсюда и переполнение). Если же URL=url1, то не надо ни отменять переход, ни вызывать первый Navigate.

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