Форум: "Сети";
Текущий архив: 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