Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.09.2012, 15:10   #1
[MoNAMur]
читер
Форумчанин
 
Аватар для [MoNAMur]
 
Регистрация: 05.10.2009
Сообщений: 150
По умолчанию Открытие Internet Explorer'a при навигации в TWebBrowser

Здравствуйте.
Возникла проблема при загрузке страницы в компонент TWebBrowser.
Страница в компонент загружается и в дальнейшем отображается, но имеется один неприятный эффект, очень неприятный - открывается окно браузера IE.

Как загрузить данные в TWebBrowser без открытия окна браузера IE?

Сейчас данные загружаю так:
Код:
procedure MyFormWithBrowser.displayDataToBrowser(text_data: string; browser_storage: TWebBrowser);
var
   sl : TStringList;
   ms : TMemoryStream;
begin
   browser_storage.Navigate('about:blank');

   while browser_storage.ReadyState < READYSTATE_INTERACTIVE do
      Application.ProcessMessages;

   if Assigned(browser_storage.Document) then
   begin
     sl := TStringList.Create;
     try
       ms := TMemoryStream.Create;
       try
         sl.Text := '<div style="font-family:Tahoma; font-size: 11px;">' + text_data + '</div>';
         sl.SaveToStream(ms);
         ms.Seek(0, 0);
         IHTMLDocument2(browser_storage.Document).Charset := 'Windows-1251';
         (browser_storage.Document as IPersistStreamInit).Load(TStreamAdapter.Create(ms));
       finally
         ms.Free;
       end;
     finally
       sl.Free;
     end;
   end;
   browser_storage.OleObject.Document.ParentWindow.Scrollto(0, 0);
end;
$me = $me == $me ? $me : $me;
[MoNAMur] вне форума Ответить с цитированием
Старый 27.09.2012, 21:04   #2
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

Цитата:
и в дальнейшем отображается, но имеется один неприятный эффект, очень неприятный - открывается окно браузера IE.
у меня данный код отрабатывает корректно, без появления дополнительных "левых" окон. XP SP3/IE6/TurboDelphi-Lite

Вложения
Тип файла: zip test_html.zip (240.4 Кб, 19 просмотров)
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 28.09.2012, 15:11   #3
[MoNAMur]
читер
Форумчанин
 
Аватар для [MoNAMur]
 
Регистрация: 05.10.2009
Сообщений: 150
По умолчанию

Windows 7
IE9
Delphi 2009

В программе есть 2 формы. На обоих формах есть WebBrowser.
Html загружаю в эти WebBrowser'ы одним методом.
В один все нормально, а в другом сопровождается неприятным эффектом.

Хотя бы теоретически чем может быть вызвано?
$me = $me == $me ? $me : $me;
[MoNAMur] вне форума Ответить с цитированием
Старый 29.09.2012, 13:13   #4
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

...добавил вторую форму, вывожу тем же методом на второй параллельно:


Глюков не отмечено. Возможно что-то с настройками IE9, возможно под семеркой методы работают иначе. Попробуйте не с ActiveX IE работать, а перейти на EmbeddedBrowser.
Вложения
Тип файла: zip test2_html.zip (241.9 Кб, 10 просмотров)
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 29.09.2012, 13:53   #5
Delphi_ProGer
Форумчанин
 
Регистрация: 30.10.2010
Сообщений: 524
По умолчанию

Емм...не знаю, это ли, но я сделал так:
Код:
procedure TForm1.WebBrowser1NewWindow2(ASender: TObject;
  var ppDisp: IDispatch; var Cancel: WordBool);
begin
  Cancel:=True;
end;
И никаких "левых" окон IE.

XP SP3, Delphi 7, ActiveX, IE 8.
Delphi_ProGer вне форума Ответить с цитированием
Старый 29.09.2012, 17:57   #6
alex4321
Пользователь
 
Регистрация: 23.07.2012
Сообщений: 77
По умолчанию

Отлавливать навигацию по ссылкам вроде можно (событием).
alex4321 вне форума Ответить с цитированием
Старый 02.10.2012, 12:17   #7
[MoNAMur]
читер
Форумчанин
 
Аватар для [MoNAMur]
 
Регистрация: 05.10.2009
Сообщений: 150
По умолчанию

Цитата:
Сообщение от alex4321 Посмотреть сообщение
Отлавливать навигацию по ссылкам вроде можно (событием).
Отлавливать и отменять? Навигация по ссылкам уже отлавливается...
Отменять их мне не нужно.

Цитата:
Сообщение от Delphi_ProGer Посмотреть сообщение
Cancel:=True;
Не помогло.


Цитата:
Сообщение от raxp Посмотреть сообщение
Глюков не отмечено.
Везет вам. Кстати ваш пример отрабатывает как нужно.

Вопрос все еще актуален.
-----------------------------------------------------------------------------
PS: Вопрос решен, спасибо за ответы.
$me = $me == $me ? $me : $me;

Последний раз редактировалось [MoNAMur]; 02.10.2012 в 13:50.
[MoNAMur] вне форума Ответить с цитированием
Старый 02.10.2012, 22:44   #8
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

Цитата:
Везет вам. Кстати ваш пример отрабатывает как нужно.
а вот это уже странно, ведь ActiveX подгружается ведь ваш, значит настройки и версия IE ни причем.

Перекомпиляцию моего проекта под свою IDE делали, эффект восстанавливается?

Цитата:
PS: Вопрос решен, спасибо за ответы.
не сразу заметил. И? Делали у себя не так, как у меня или... ?
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation

Последний раз редактировалось raxp; 02.10.2012 в 22:47.
raxp вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обновить версию internet explorer в TWebbrowser. Евгений79 Работа с сетью в Delphi 9 16.01.2015 20:23
AV при Navigate2 в TWebBrowser youngprankster Общие вопросы C/C++ 1 23.10.2009 16:52
Включение explorer'a с помощью Delphi 2009 bebecap Win Api 6 10.10.2009 20:07
Включение explorer'a с помощью Delphi 2009 bebecap Общие вопросы Delphi 4 11.09.2009 21:37