Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Странное поведение Navigate в TwebBrowser [D7]


Fr ©   (2012-04-08 22:02:00) 

на форме в приложении лежит TwebBrowser. В определенный момент по условию запускается
WB.Navigate('about:<html><style>'+
'h1{font-family:arial;color:blue;font-size:8pt;text-align:center;}'body{font-family:arial;font-size:8pt;text-align:left;}</style><body></body></html>');

И вот тут начинается самое интересное. Код нормально срабатывает только при значениях font-size:8pt
При попытке изменить его на 10,12,14... запускается IE (причем он не установлен в системе по-умолчанию) во время обработки этого Nvigate.

В чем может быть проблема?


Fr   (2012-04-09 16:00:00) [1]


> sniknik ©   (08.04.12 23:15) [8]

Виноват я сам - не просмотрел код в BeforeNavigate2.... Сорри.


Cobalt   (2012-04-09 11:06:00) [2]

подозреваю, что ТС переместил загрузку кода из Navigateв Load


sniknik   (2012-04-08 23:15:00) [3]

ИИИИ????

p.s. слов нет, один мат остался... нафига мне твое спасибо, без описания причины? чувство, как читать детектив с последней страницей которого в туалет сходили.


Fr   (2012-04-08 22:46:00) [4]


> sniknik ©

Спасибо, разобрался....


sniknik   (2012-04-08 22:40:00) [5]

> Чистое приложение c WB и кнопкой проходит на ура.
значит тут ошибки нет...

> но вываливается IE именно на обработке Navigate.
> что значит она в другом месте.
в месте вызова например, вдруг оно в потоке... + без инициализации COM.


Fr   (2012-04-08 22:34:00) [6]


> хотя, это не мешает html в примере быть с ошибками.

подстановка в код <head>....</head> ничего не меняет. Все-равно вываливается IE. Если не трудно - укажите ошибку в этом html коде.


> новое приложение, с 1 WebBrowser и 1 кнопкой (сойдет за
> "условие"?). проблемы не получается. что значит она в другом
> месте.

Чистое приложение c WB и кнопкой проходит на ура.
Здесь же все то же самое, но вываливается IE именно на обработке Navigate.


sniknik   (2012-04-08 22:33:00) [7]

p.s. как то уже сталкивался, при более менее большом коде "about" не работает... поэтому делал так -

 procedure WBLoadHTML(WebBrowser: TWebBrowser; const HTMLCode: string);
 var
   ms: TStringStream;
 begin
  WebBrowser.Navigate('about:blank');
  while WebBrowser.ReadyState < READYSTATE_INTERACTIVE do begin
    Application.ProcessMessages;
    Sleep(0);
  end;

  if Assigned(WebBrowser.Document) then begin
    ms:= TStringStream.Create(HTMLCode);
    try
      (WebBrowser.Document as IPersistStreamInit).Load(TStreamAdapter.Create(ms));
    finally
      ms.Free;
    end;
  end;
 end;


sniknik   (2012-04-08 22:24:00) [8]

хотя, это не мешает html в примере быть с ошибками.


sniknik   (2012-04-08 22:22:00) [9]

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


Fr   (2012-04-08 22:04:00) [10]

Неправильно скопировал код из приложения. Вот то. что там:
WB.Navigate('about:<html><style>h1{font-family:arial;color:blue;font-size:8pt;text-align:center;}body{font-family:arial;font-size:8pt;text-align:left;}</style><body></body></html>');


Наверх

Титульная страница Поиск, карта сайта Написать письмо