Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

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


Информационный Канал Subscribe.Ru


Gregory Sitnin: Developer's book


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

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

Реализация

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

procedure ShowHTML(const HTML: string; AWebBrowser: TWebBrowser);
var HtmlText: OLEVariant;
begin
  HtmlText := 'about:'+HTML;
  AWebBrowser.Navigate2(HtmlText);
end;

Теперь, в любом месте своей программы просто вызовите созданную функцию для того, чтобы ваша страница была показана пользователю во всей своей красе.

ShowHTML('<head></head><body><h1>Hello, World!</h1></body>',WebBrowser1);

Как это работает

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

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

На этом я заканчиваю очередную маленькую хитрость. Всем успехов!







http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное