Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 21.03.2015, 19:56
one_v one_v вне форума
Прохожий
 
Регистрация: 21.03.2015
Сообщения: 3
Версия Delphi: RAD Studio XE7
Репутация: 10
По умолчанию Перехват ссылки

Здравствуйте ребят. Перелопатил форумы, мозг вымотал себе уже.



Код:
procedure TForm4.FormCreate(Sender: TObject);
begin
Returning:=GetCurrentdir;
WebBrowser2.Navigate(Returning+'.\html\Системная защита приложений MS Office\index.htm');
WebBrowser1.Navigate(Returning+'.\html\Системная защита приложений MS Office\системная защита.html');
end;




procedure TForm4.WebBrowser2NewWindow2(ASender: TObject; var ppDisp: IDispatch;
  var Cancel: WordBool);
begin
ppDisp := WebBrowser1.DefaultInterface;
end;



Теперь не программно. В дельфине есть два компонента WebBrowser1 и WebBrowser2.
Второй браузер-менюшка. Кликая на которую, менюшка не должна потухнуть и открыть все в одном окне (или закрыться как у меня это бывало).
Хотя бы как нибудь
Это как бы навигация такая.

Иными словами, слева тыкая на меню- передаем во второй браузер. Причем документ уже открыт сам..

Если не так объяснил, могу выложить скрины.. что у меня есть..

Последний раз редактировалось one_v, 21.03.2015 в 20:01.
Ответить с цитированием
  #2  
Старый 21.03.2015, 22:49
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,087
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Видимо, тебя интересует событие OnBeforeNavigate2. Там отлавливаешь ссылку, а потом вызываешь Abort, что бы отменить переход.
Ответить с цитированием
Этот пользователь сказал Спасибо lmikle за это полезное сообщение:
one_v (22.03.2015)
  #3  
Старый 22.03.2015, 04:28
one_v one_v вне форума
Прохожий
 
Регистрация: 21.03.2015
Сообщения: 3
Версия Delphi: RAD Studio XE7
Репутация: 10
По умолчанию

Пока не доходит.

Код:
procedure TForm4.WebBrowser2BeforeNavigate2(ASender: TObject;
  const pDisp: IDispatch; const URL, Flags, TargetFrameName, PostData,
  Headers: OleVariant; var Cancel: WordBool);
begin
if Returning='.\html\Системная защита приложений MS Office\index.htm'  then
begin
cancel:=True;
WebBrowser1.Navigate(Returning+'.\html\Системная защита приложений MS Office\ системная защита.html');

Так не работает.
Ответить с цитированием
  #4  
Старый 22.03.2015, 04:39
one_v one_v вне форума
Прохожий
 
Регистрация: 21.03.2015
Сообщения: 3
Версия Delphi: RAD Studio XE7
Репутация: 10
По умолчанию

УРА! Открыл!

Код:
procedure TForm4.WebBrowser2BeforeNavigate2(ASender: TObject;
  const pDisp: IDispatch; const URL, Flags, TargetFrameName, PostData,
  Headers: OleVariant; var Cancel: WordBool);
begin
if WebBrowser2.ReadyState=4 then
begin
Cancel:=True;
WebBrowser1.Navigate(Returning+'.\html\Системная защита приложений MS Office\системная защита.html');


Но вот якори почему то перестали работать...
Открывая в обычном браузере все хорошо, якори работают. в Делфи не тянет.
Скорее всего я думаю что нужно как-то сослаться на якорь...

WebBrowser1.Navigate(Returning+'.\html\Системная защита приложений MS Office\системная защита.html'+#Название якоря);
...................
Но так сыпется, по типам строковый и веброузер...

Последний раз редактировалось one_v, 22.03.2015 в 05:24.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 01:33.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025