![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Странное поведение 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>');