Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.12.02;
Скачать: CL | DM;

Вниз

Как в WebBrowser отобразить html c рисунками из ресурсов?   Найти похожие ветки 

 
Darts   (2002-10-03 18:43) [0]

Цитирую выдержку из FAQ"а. Ниже мой вопрос.

Вопрос: Как можно использовать протокол "res:"?

Ответ: Протокол "res:" позволяет просмотреть HTML файл, сохранённый как ресурс. Более подробная информация доступна на Microsoft site:

procedure TForm1.LoadHTMLResource;
var
Flags, TargetFrameName, PostData, Headers: OleVariant;
begin
WebBrowser1.Navigate("res://" + Application.ExeName + "/myhtml",
Flags, TargetFrameName, PostData, Headers)
end;

Создайте файл ресурса (*.rc) со следующими строками и откомпилируйте его при помощи brcc32.exe:

MYHTML 23 ".\html\myhtml.htm"

MOREHTML 23 ".\html\morehtml.htm"

Отредактируйте файл проекта, чтобы он выглядел примерно так:

{$R *.RES}
{$R HTML.RES} //где html.rc будет скомпилирован в html.res


///////////////////////////////////////////////////////////////
Предположим, что в myhtml.html есть 2 gif"а (скажем, это кнопки навигации). Как мне загрузить эти рисунки?


 
int64 ©   (2002-10-03 23:56) [1]

Из ресурсов картинки отобразить не удастся. Их прийдётся вытащить отдельно, сохранить, а потом уже подставить в браузер. Потомучто протокол res работает только с текстом.


 
Darts   (2002-10-04 14:48) [2]

В VB это прекрасно работает. Не представляю, как это в Delphi можно подставлять все в отдельности, используя Navigate?

Я бы не стал 100% говорить, что протокол res работает исключительно с текстом. Зачем тогда ресурсы?


 
int64 ©   (2002-10-05 00:57) [3]

Да, действительно, был не прав. Просто когда-то услышал это от человека, которому доверяю.
А теперь проверил - всё работает.

Вчём проблема то? Отобразить картинки из ресурсов? Или правильно их туда поместить?


 
Darts   (2002-10-05 13:29) [4]

Именно отобразить. Не помешал бы и пример rc файла. Вот листинг, составленный для VB, brcc32 встречает в штыки:

page.htm 2110 "page.htm"
logo.GIF 2110 "logo.gif"

В VB вызов происходит так:
WebBrowser1.Navigate "res://" & App.Path & "\" & App.EXEName & ".exe/page.htm"

Для Delphi переделал так:
pagehtm 2110 "page.htm"
logoGIF 2110 "logo.gif"

И вызвал, как в первом письме. Результат нулевой.

Быть может, надо так:
HTMLDocument := WebBrowser1.Document as IHTMLDocument2;
и подбираться к решению, используя свойства и методы HTMLDocument?

Хорошо бы за что-то уцепиться - дальше сам дойду.



 
int64 ©   (2002-10-05 17:07) [5]

Алгоритм такой.

1)Создай файл html.rc:

MYHTML 23 "myhtml.htm"
PICTURE 23 "1.gif"

и myhtml.htm:
<BODY>
<h1>Картинка загружена из res://Project1.exe/picture</h1>
<IMG SRC="res://Project1.exe/picture">
</BODY>

Как видишь картинка ссылается на ресурс, которого пока ещё нет.

В одном каталоге должны лежать 1.gif, myhtml.htm, html.rc.

2)Компилишь html.rc:
brcc32.exe html.rc html.res

3)В dpr пишешь:
{$R *.RES}
{$R HTML.RES}

4)WebBrowser1.Navigate("res://Project1.exe/myhtml");
Именно Project1.exe, потомучто это название компилилось из myhtml.htm.
Перед использованием протокола res, в WebBrowser1 должен быть загружен документ (тот же blank)

Всё, дерзай. Куда уж подробнее.


 
Darts   (2002-10-05 17:55) [6]

Попробую. Спасибо за помощь.



Страницы: 1 вся ветка

Текущий архив: 2002.12.02;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.018 c
1-4292
Оля
2002-11-21 11:52
2002.12.02
Какой командой ето bmp можно записать на диск?


14-4575
copyr25
2002-11-06 18:41
2002.12.02
---|Ветка была без названия|---


3-4179
kombat
2002-11-12 17:54
2002.12.02
Как открыть таблицу из указанного расположения с помощью АДО


1-4396
borg
2002-11-22 07:28
2002.12.02
Алгоритм проверки


14-4621
alex134
2002-11-12 20:18
2002.12.02
Мышь оптическая A4