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

Использование TEdgeBrowser в Delphi 12.1 на Windows 11: решение проблемы отображения веб-страниц

Delphi , Компоненты и Классы , Модули

В статье рассматривается проблема отображения веб-страниц в компоненте TEdgeBrowser в Delphi 12.1 на Windows 11. Приведены два решения: официальное от Embarcadero и альтернативное с использованием CEF4Delphi.

Проблема

При попытке отобразить веб-страницу в компоненте TEdgeBrowser в Delphi 12.1 на Windows 11 ничего не происходит. Компонент не отображает веб-страницу, хотя установщик Microsoft Edge WebView2 был запущен и компонент был размещен на форме.

Решение от Embarcadero

По данным документации Embarcadero, для корректной работы TEdgeBrowser необходимо выполнить несколько шагов:

  1. Установить WebView2 SDK, чтобы скопировать файл WebView2Loader.dll в папку приложения (или добавить его в путь поиска ОС).
  2. Настроить свойство UserDataFolder браузера до навигации к какому-либо URL.
  3. Назначить обработчик события OnCreateWebViewCompleted для обнаружения неудачных попыток инициализации WebView2.

Пример кода, демонстрирующий правильную конфигурацию TEdgeBrowser:

unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Winapi.WebView2, Winapi.ActiveX,
  Vcl.Edge;

type
  TForm1 = class(TForm)
    EdgeBrowser1: TEdgeBrowser;
    procedure FormCreate(Sender: TObject);
    procedure EdgeBrowser1CreateWebViewCompleted(Sender: TObject);
  private
    { Private declarations }
    FUserDataFolder: string;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  FUserDataFolder := TPath.GetTempPath + 'EdgeBrowser1' + IntToStr(Hash(Address(EdgeBrowser1)));
  EdgeBrowser1.UserDataFolder := FUserDataFolder;
  EdgeBrowser1.OnCreateWebViewCompleted := EdgeBrowser1CreateWebViewCompleted;
  EdgeBrowser1.Navigate('https://www.example.com');
end;

procedure TForm1.EdgeBrowser1CreateWebViewCompleted(Sender: TObject);
begin
  if EdgeBrowser1.CreateWebViewCompleted.Succeeded then
    ShowMessage('WebView2 initialized successfully.')
  else
    ShowMessage('Failed to initialize WebView2: ' + EdgeBrowser1.CreateWebViewCompleted.Error.Message);
end;

end.

Альтернативное решение: CEF4Delphi

Вместо использования TEdgeBrowser можно воспользоваться альтернативным компонентом CEF4Delphi, который основан на Chromium Embedded Framework (CEF) и не требует установки клиента. Для этого необходимо:

  1. Установить CEF4Delphi из репозитория GetIt Package Manager в Delphi.
  2. Добавить TCEFBrowser на форму.
  3. Написать код для навигации к веб-странице.

Пример кода, демонстрирующий использование CEF4Delphi:

unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, CEF4Delphi.TCEF;

type
  TForm1 = class(TForm)
    CEFBrowser1: TCEFBrowser;
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  CEFBrowser1.LoadURL('https://www.example.com');
end;

end.

Использование CEF4Delphi избавляет от необходимости устанавливать WebView2 SDK и настраивать дополнительные свойства, как в случае с TEdgeBrowser. Тем не менее, обе технологии могут быть полезны в зависимости от конкретных требований проекта.

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

В статье описывается проблема отображения веб-страниц в компоненте TEdgeBrowser в Delphi 12.1 на Windows 11, а также приводятся два решения: официальное от Embarcadero и альтернативное с использованием CEF4Delphi.


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

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




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


:: Главная :: Модули ::


реклама


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

Время компиляции файла: 2024-12-22 20:14:06
2025-01-28 07:00:48/0.0033211708068848/0