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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 20.02.2011, 15:32
Snake22 Snake22 вне форума
Активный
 
Регистрация: 20.02.2011
Сообщения: 374
Репутация: 744
Вопрос открыть ссылку в webbrowser НЕ в новом окне

подскажите пожалуйста,как реализовать такое.есть страница в которой при нажатии на ссылку через WebBrowser , ссылка открывается не в этом компоненте,а в стандартном браузере IE.
как сделать чтоб она в том же окне WebBrowser открывалась?
гугль чтото не помог в этот раз(

Последний раз редактировалось Snake22, 20.02.2011 в 16:08.
Ответить с цитированием
  #2  
Старый 20.02.2011, 20:01
Аватар для eXplorer
eXplorer eXplorer вне форума
Активный
 
Регистрация: 06.08.2010
Адрес: Ярославль
Сообщения: 264
Версия Delphi: 7
Репутация: 14
По умолчанию

если не ошибаюсь то:

в событии WebBrowser.NewWindow:
Код:
var
Can:CancelEventArgs;
begin
Can.Cancel:= true;
__________________

Последний раз редактировалось eXplorer, 20.02.2011 в 20:04.
Ответить с цитированием
  #3  
Старый 20.02.2011, 20:08
Snake22 Snake22 вне форума
Активный
 
Регистрация: 20.02.2011
Сообщения: 374
Репутация: 744
По умолчанию

чтото ругается на
var
Can:CancelEventArgs;

Undeclared identifier
Ответить с цитированием
  #4  
Старый 20.02.2011, 20:10
Аватар для eXplorer
eXplorer eXplorer вне форума
Активный
 
Регистрация: 06.08.2010
Адрес: Ярославль
Сообщения: 264
Версия Delphi: 7
Репутация: 14
По умолчанию

нужно модуль подключить в uses...
только проблема... я его не помню ждём ответа тех кто знает
__________________
Ответить с цитированием
  #5  
Старый 20.02.2011, 20:43
Аватар для eXplorer
eXplorer eXplorer вне форума
Активный
 
Регистрация: 06.08.2010
Адрес: Ярославль
Сообщения: 264
Версия Delphi: 7
Репутация: 14
По умолчанию

нет... я не то говорю...
просто в событие WebBrowser1NewWindow2 нужно добавить:

Код:
Cancel:= true;
вот и всё
__________________
Ответить с цитированием
  #6  
Старый 20.02.2011, 20:46
Snake22 Snake22 вне форума
Активный
 
Регистрация: 20.02.2011
Сообщения: 374
Репутация: 744
По умолчанию

Цитата:
Сообщение от eXplorer
нет... я не то говорю...
просто в событие WebBrowser1NewWindow2 нужно добавить:

Код:
Cancel:= true;
вот и всё
спасибо,но!теперь кликая на ссылку вообще ничего не происходит
Ответить с цитированием
  #7  
Старый 20.02.2011, 20:49
Аватар для eXplorer
eXplorer eXplorer вне форума
Активный
 
Регистрация: 06.08.2010
Адрес: Ярославль
Сообщения: 264
Версия Delphi: 7
Репутация: 14
По умолчанию

странно у меня происходит...
__________________
Ответить с цитированием
  #8  
Старый 20.02.2011, 20:57
Snake22 Snake22 вне форума
Активный
 
Регистрация: 20.02.2011
Сообщения: 374
Репутация: 744
По умолчанию

хмм.а ты на какоом сайте проверял.
если в гугл перейти и там на любой рез-тат поиска нажать то ниче не произойдет.
а если убрать Cancel:= true; то откроется в родном браузере
Ответить с цитированием
  #9  
Старый 20.02.2011, 21:26
Аватар для eXplorer
eXplorer eXplorer вне форума
Активный
 
Регистрация: 06.08.2010
Адрес: Ярославль
Сообщения: 264
Версия Delphi: 7
Репутация: 14
По умолчанию

'http://www.yandex.ru/'
__________________
Ответить с цитированием
  #10  
Старый 20.02.2011, 22:57
Snake22 Snake22 вне форума
Активный
 
Регистрация: 20.02.2011
Сообщения: 374
Репутация: 744
По умолчанию

=(.блин.
а может можно как то сделать такое.нажимаю я на ссылку,ссылка копируется в какую нить переменную,потом происходит событие Cancel:= true; и потом ссылка из переменной в браузер вставляется =)
как перехватить ссылку???))
Ответить с цитированием
  #11  
Старый 21.02.2011, 06:09
Аватар для dr. F.I.N.
dr. F.I.N. dr. F.I.N. вне форума
I Like it!
 
Регистрация: 12.12.2009
Адрес: Россия, г. Новосибирск
Сообщения: 663
Версия Delphi: D6/D7
Репутация: 26643
По умолчанию

У WebBrowser-а есть событие (если не ошибаюсь) OnBeforNavigate. В процедуре этого события есть параметр URL, который как раз и горворит, куда браузер собрался переходить. А так же есть параметр Cancel, который отменит переход.

Писал по памяти. Перед глазами нет делфи. Возможно попутал названия параметров, но событие точно верное
__________________
Грамотно поставленный вопрос содержит не менее 50% ответа.
Грамотно поставленная речь вызывает уважение, а у некоторых даже зависть.
Ответить с цитированием
  #12  
Старый 21.02.2011, 15:31
Snake22 Snake22 вне форума
Активный
 
Регистрация: 20.02.2011
Сообщения: 374
Репутация: 744
По умолчанию

да спасибо,такое событие есть,ща буду голоу ломать как реализовать вышеописанную штуку.а то так замкнутый цикл получается : кликаю по ссылке,она передается в url,потов происхоит cancel,потом браузер переходит по ссылке из переменной url,ссылка опять передается в переменную url и так до бесконечности :d
Ответить с цитированием
  #13  
Старый 21.02.2011, 17:06
Snake22 Snake22 вне форума
Активный
 
Регистрация: 20.02.2011
Сообщения: 374
Репутация: 744
По умолчанию

блин,так ниче и не придумал толком(((
появился такой вариант:
на событии WebBrowser1NewWindow2 прописать:
Код:
var
  webbrowser2 : TWebBrowser;
begin
  webbrowser2 := TWebBrowser.Create(Self);
  TWinControl(WebBrowser2).Visible :=false;
  ppDisp := webbrowser2.ControlInterface;
  Self.InsertControl(webbrowser2);
  webbrowser2.width:=1;
  webbrowser2.height:=1;
  ShowMessage(WebBrowser2.LocationURL);
то есть создаю новый компонент вебброузер2,скрытый,в нём ссылка на нужную мне страницу,
НО , последняя строка кода ShowMessage(WebBrowser2.LocationURL);
возвращает пустое значение!
помогите доработать пожалуйста, (правда в конечном варианте планирую не showmessage а WebBrowser1.Navigate(WeBBrowser2.LocationURL))
непойму почему там пусто,хотя если убрать свойство ".Visible :=false" то второй созданный броузер норм отобразит нужную страничку.
Ответить с цитированием
  #14  
Старый 24.02.2011, 18:12
Snake22 Snake22 вне форума
Активный
 
Регистрация: 20.02.2011
Сообщения: 374
Репутация: 744
По умолчанию

upd.вдохновение вернулось,надо бы дописать эту вещь описанную выше.всё еще требуется помощь,помогите
Ответить с цитированием
  #15  
Старый 24.02.2011, 18:38
Snake22 Snake22 вне форума
Активный
 
Регистрация: 20.02.2011
Сообщения: 374
Репутация: 744
По умолчанию

а всё,ща на свежую голову все сделал =)
получилось так:
добавил на форму компонент webbrowser2,и в событие oncreate формы написал webbrowser2.hide;
и потом в событии веббровсер1 WebBrowser1NewWindow2
ppDisp := webbrowser2.ControlInterface;
а в веббровсере2 на событие OnBeforNavigate
WebBrowser1.Navigate(URL); Cancel:=true; //cancel=true здесь всегото чтоб никчёмный переход не выполнялся))

и всё)))

зы а никто не знает как скрыть webbrowser2 не через событие on form create а чтоб сразу скрыт был?

Последний раз редактировалось Snake22, 24.02.2011 в 18:46.
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

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