Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Вставка текста (программно сгенерированной HTML-страницы) в TWebBrowser (не из файла, а из текстовой переменной)

Delphi , Интернет и Сети , Браузер

Вставка текста (программно сгенерированной HTML-страницы) в TWebBrowser (не из файла, а из текстовой переменной)

Автор: Lipskiy
WEB-сайт: http://delphibase.endimus.com

{ **** UBPFD *********** by delphibase.endimus.com ****
>> Вставка текста (программно сгенерированной HTML-страницы) в TWebBrowser
(не из файла, а из текстовой переменной)

Функция позволяет отображать любой текст в TWebBrowser или TWebBrowser_V1.
С ее помощью можно обойтись без html-файлов и отображать html-странички,
генерируя их программно. Обрабатывая клики в таких страничках можно быстро
и просто создавать интерфейс приложения в формате HTML.
Для работы функции обязателен установленный в системе Internet Explorer.
Здесь я использую веббраузер старой версии - TWebBrowser_V1, при необходимости
можно заменить его на TWebBrowser (просто переписать тип входной переменной WB),
Но при этом программа с этой функцией будет работать только на системах
с IE версии 5.0 и выше, в то время как TWebBrowser_V1 обеспечивает работу
начиная с версии 4.0.

Зависимости: ActiveX, SHDocVw, MSHTML, Forms, установленный Internet Explorer
Автор:       lipskiy, lipskiy@mail.ru, ICQ:51219290, Санкт-Петербург
Copyright:   Взято из FAQ и оптимизировано lipskiy и Donal_Graeme
Дата:        14 августа 2002 г.
***************************************************** }

procedure TextToWebBrowser(Text: string; var WB: TWebBrowser_V1);
var
  Document: IHTMLDocument2;
  V: OleVariant;
begin
  // Документ необходимо создать только один раз за текущую сессию работы
  if WB.Document = nil then
    WB.Navigate('about:blank');
  // Ожидаем создания документа и позволяем обрабатывать все сообщения
  while WB.Document = nil do
    Application.ProcessMessages;
  Document := WB.Document as IHtmlDocument2;
  // Вставляем текст (до 2Гб)
  {следующие строчки внесены недавно - старый вариант функции не работал под XP}
  V := VarArrayCreate([0, 0], varVariant);
  V[0] := Text;
  Document.Write(PSafeArray(TVarData(v).VArray));
  Document.Close;
end;

Программный процессор Delphi, именуемый TextToWebBrowser, вставляет текстовую строку в компонент TWebBrowser_1 без загрузки из файла. Процедура использует активные контролы SHDocVw, MSHTML и Forms.

Вот шаг за шагом, что код делает:

  1. Он проверяет, создан ли документ, проверяя свойство Document. Если нет, он навигирует на пустую страницу ('about:blank') и будет ожидать создания документа с помощью цикла обработки сообщений.
  2. Как только документ создается, процедура получает интерфейс к HTML-документу (IHTMLDocument2) и присваивает его переменной Document.
  3. Она создает массив варианта с одним элементом, содержащим текстовую строку.
  4. Метод Write документа используется для вставки текста в HTML-страницу с использованием массива варианта как источника.

Процедура также включает комментарии и примечания о compatibility issues между различными версиями Internet Explorer (IE). Автор отмечает, что это код будет работать на системах с IE 5.0 или выше, но не на более старых версиях.

Чтобы использовать эту процедуру, вам нужно создать экземпляр TWebBrowser_1 и передать его в качестве параметра к процедуре TextToWebBrowser, а также текстовую строку, которую вы хотите вставить.

Вот пример использования:

var
  WB: TWebBrowser_1;
begin
  WB := TWebBrowser_1.Create(nil);
  TextToWebBrowser('Hello World!', WB);
end.

Это отобразит текст "Hello World!" в компоненте TWebBrowser_1.

В статье описана функция для вставки программно сгенерированной HTML-страницы в компонент TWebBrowser (не из файла, а из текстовой переменной) и ее использование для отображения интерфейса приложения в формате HTML.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




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


:: Главная :: Браузер ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-19 13:29:56
2024-10-12 16:29:01/0.0039699077606201/0