Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2002.12.02;
Скачать: [xml.tar.bz2];

Вниз

Как в 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.008 c
14-4599
Gennady
2002-11-12 12:35
2002.12.02
QuickDesk (exUSSR)


1-4463
STANT
2002-11-20 11:09
2002.12.02
Как


4-4666
Ricks
2002-10-20 15:10
2002.12.02
GradientFill


4-4680
Squ
2002-10-22 09:26
2002.12.02
Передача информации между двумя приложениями...


3-4205
robi
2002-11-13 15:28
2002.12.02
Выполнение хранимой процедуры





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский