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

Переезд с VCL на FireMonkey: как загрузить HTML в TWebBrowser?

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

Вопрос о совместимости и переходе с компонентов VCL на аналогичные в FireMonkey (FMX) часто встречается у разработчиков, использующих Delphi. В частности, использование TWebBrowser в приложениях FMX для загрузки HTML, сгенерированного во время выполнения программы, может вызвать затруднения. В данной статье мы рассмотрим, как адаптировать код для работы с TWebBrowser в FireMonkey.

Описание проблемы:

Разработчики, работающие с FireMonkey TWebBrowser, могут столкнуться с проблемой несовместимости, если они пытаются использовать код, предназначенный для VCL. В частности, приведенный ниже пример кода, предназначенный для загрузки HTML-строки в TWebBrowser, работает только с VCL:

procedure WBLoadHTML(WebBrowser: TWebBrowser; HTMLCode: string);
var
  sl: TStringList;
  ms: TMemoryStream;
begin
  WebBrowser.Navigate('about:blank');
  while WebBrowser.ReadyState < READYSTATE_INTERACTIVE do
    Application.ProcessMessages;
  if Assigned(WebBrowser.Document) then begin
    sl := TStringList.Create;
    try
      ms := TMemoryStream.Create;
      try
        sl.Text := HTMLCode;
        sl.SaveToStream(ms);
        ms.Seek(0, 0);
        (WebBrowser.Document as IPersistStreamInit).Load(TStreamAdapter.Create(ms));
      finally
        ms.Free;
      end;
    finally
      sl.Free;
    end;
  end;
end;

Подтвержденный ответ:

Для работы с TWebBrowser в FireMonkey необходимо использовать метод LoadFromStrings, который позволяет загрузить HTML-код непосредственно из строки. Вот пример кода, который демонстрирует этот процесс:

procedure TForm1.FormCreate(Sender: TObject);
var
  sHTML: string;
begin
  sHTML := '<a href="http://delphi.about.com">GOTO</a>' +
           '<b>About Delphi Programming</b>';
  WebBrowser1.LoadFromStrings(['<html><body>', sHTML, '</body></html>']);
end;

Альтернативный ответ:

Если вы разрабатываете приложение, которое должно работать как на мобильных, так и на десктопных устройствах, стоит учесть, что TWebBrowser в FireMonkey доступен только для мобильных приложений. Для десктопных приложений FMX вам потребуется использовать другой компонент для отображения веб-контента.

Один из вариантов - реализация функционала в DLL, или использование открытого проекта TWebBrowserEx, который использует стандартные веб-браузеры платформы. Например, на Windows это будет Internet Explorer, на OS X - Safari WebView, на iOS и Android - соответствующие WebView.

Заключение:

Переход с VCL на FireMonkey требует внимания к деталям и понимания особенностей каждого компонента. TWebBrowser в FMX имеет свои нюансы, но с правильным подходом и использованием методов, предназначенных для FMX, разработчики могут успешно адаптировать свой код для работы в кросс-платформенных приложениях.

Создано по материалам из источника по ссылке.

Переезд с использования компонентов VCL на аналогичные в FireMonkey (FMX) в Delphi может потребовать адаптации кода, в частности, для работы с TWebBrowser в приложениях FMX для загрузки HTML.


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

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




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


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


реклама


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

Время компиляции файла: 2024-12-22 20:14:06
2025-02-20 22:47:44/0.0035378932952881/0