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

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

проблема отображения картинок в 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

А ты что творишь в своем обработчике ?
Ты там творишь совсем другое)


Наверх

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