Маленькие хитрости: Показываем страницу в TWebBrowser, не сохраняя ее на диск

altЧасто необходимо сгенерировать страницу и показать ее при помощи TWebBrowser. Начинающие программисты для этого просто сохраняют ее на диск, а опытные по старой привычке ищут в документации способы управления интерфейсом ActiveX-объекта браузера. Последний способ, пожалуй, самый лучший, но справиться с ним крайне сложно. Чего только стоит работа с SafeArray. Тем не менее, и с помощью широко доступной функции TWebBrowser.Navigate2() можно показать страницу, не записывая ее на диск.

Реализация
Для пущего удобства, я предлагаю создать процедуру ShowHTML, которую мы и будем вызывать в нужный момент. Пускай она принимает два параметра: текст HTML (без тэгов контейнера « … »), а также указатель на объект TWebBrowser. По сути своей процедура крайне проста.

procedure ShowHTML(const HTML: string; AWebBrowser: TWebBrowser);
var HtmlText: OLEVariant;
begin
HtmlText := ‘about:’+HTML;
AWebBrowser.Navigate2(HtmlText);
end;
Теперь, в любом месте своей программы просто вызовите созданную функцию для того, чтобы ваша страница была показана пользователю во всей своей красе.

ShowHTML(‘

Hello, World!

‘,WebBrowser1);
Как это работает
Работает эта функция очень просто: она командует браузеру перейти на системную страницу «about:» подставляя после двоеточия текст вашей страницы. Internet Explorer обрабатывает эту ссылку таким образом, что создается страница, обрамленная контейнером « … » и содержащая внутри этого контейнера подставленный текст.

Данная функция тестировалась на IE 5.0 и 6.0, но есть мнение, что будет работать, как минимум на IE 4.0

Понравилась статья? Поделиться с друзьями: