![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
проблема отображения картинок в WebBrowser [D6, WinXP]
Артем © (2008-02-22 09:37:00)Помогите решить проблему. Есть WebBrowser, есть обработчик BeforeNavigate2, который "вынимает" из ресурсов html-страницы, делает в них изменения и отображает в браузере.
Проблема заключается в том, что после преобразований и отображения через
(Wb.Document as IHTMLDocument2).write(PSafearray(TVarData(v).VArray))
у меня не отображаются картинки, которые также в ресурсах.
html пришиваются так:
P1 23 P1.HTM
P2 23 P1.HTM
...
Картинки также:
IM1 23 IM1.JPG
IM2 23 IM2.JPG
...
Обработчик BeforeNavigate2 выглядит так:
if URL='about:blank' then exit;
cancel:=true;
ur:=url;
str:=after('/P',ur); {здесь получаю индекс страницы}
s:=TStringList.Create;
U:=StringReplace(URL, 'about', '',[rfReplaceAll, rfIgnoreCase]);
res:='P'+str;
rs := TResourceStream.Create(hinstance, res, PChar(23));
try
s.LoadFromStream(rs);
finally
rs.Free;
end;
temp:=StringReplace(S.Text, '<User>', username,[rfReplaceAll, rfIgnoreCase]); {замена <User> на необходимое}
S.Free;
V:=Vararraycreate([0,0], varVariant);
v[0]:=temp;
(Wb.Document as IHTMLDocument2).write(PSafearray(TVarData(v).VArray));
Что делаю не так? Почему у меня не отображаются картинки, которые прописаны в HTML? Может что-то нужно еще обрабатывать?
Очнь нужна Ваша помощь, коллеги. Заранее ОГРОМНОЕ спасибо!
Artem (2008-02-23 01:23:00) [1]Да, я уже разобрался. Сейчас занимаюсь обработкой. Спасибо.
DiamondShark (2008-02-23 01:18:00) [2]
> Artem (23.02.08 00:44) [11]
И как, по-твоему, несчатный браузер должен дотелепать, что im1 находится в каком-то там ресурсе?
задавай полный урл:
res://project1.exe/im1
Artem (2008-02-23 00:44:00) [3]
Какой урл используется для навигации на страницу
p1
p2
p2
...
какие урлы прописаны у картинок в тексте страницы
im1
im2
im3
...
DiamondShark (2008-02-23 00:03:00) [4]Какой урл используется для навигации на страницу и какие урлы прописаны у картинок в тексте страницы?
DiamondShark (2008-02-22 23:59:00) [5]
> Artem (22.02.08 14:30) [2]
> Я все делаю нормально.
Значит у тебя всё работает, и проблемы нету.
Есть такая штука -- отладчик. Он умеет такие вещи делать, как ставить точки останова и показывать значения переменных.
Ты уже ставил точку останова в обработчике BeforeNavigate2, смотрел, получает ли он урл картинок?
---------
Кстати, зачем такой трансректальный метод для такой простой задачи?
Грузи свою страничку сразу по урл-схеме res:, потом в NavigateComplete заменяй в страничке нужный текст, используя HTML DOM.
Например, зарезервируй место вот так:
<SPAN id="userText"></SPAN>
Потом находишь в документе элемент по id и заменяешь его свойство innerHTML или innerText.
Да, урлы картинок тоже должны быть res:
Artem (2008-02-22 22:35:00) [6]
И к "Сетям" отношения НЕ имеет.
Имеет, т.к. WebBrowser
Artem (2008-02-22 22:34:00) [7]А что не понятно конкретно?
Сергей М. (2008-02-22 16:19:00) [8]Сначала представь ТЗ хоть в сколь-либо презентабильном виде, потом будут и советы.
А та шняга, чтго ты изложил, - это не ТЗ.
И к "Сетям" отношения НЕ имеет.
Artem (2008-02-22 15:57:00) [9]Сергей, в Ваших комментах я не нуждаюсь. Если есть опыт работы с браузером - так помогите советом.
Сергей М. (2008-02-22 15:10:00) [10]Тут, кстати, радует другое - размещение вопроса именно в "Сети")
Сергей М. (2008-02-22 14:58:00) [11]
> Я все делаю нормально
Ну продолжай в том же духе.
Artem (2008-02-22 14:30:00) [12]Я все делаю нормально. То, что мне надо сделать с текстом - все работает.
А вот с графикой не разберусь.
Сергей М. (2008-02-22 14:10:00) [13]Читай справку:
Write an OnBeforeNavigate2 event handler to redirect or cancel a change to a different URL
А ты что творишь в своем обработчике ?
Ты там творишь совсем другое)