В последнее время разработчики, использующие язык программирования Object Pascal и среду разработки Delphi, столкнулись с новой возможностью интеграции браузера на основе Microsoft Edge в свои приложения. Компонент TEdgeBrowser был представлен в RAD Studio 10.4 и привлек внимание благодаря современным возможностям и производительности.
Однако, как и любая новая технология, TEdgeBrowser может вызывать проблемы, которые не сразу очевидны. Одной из таких проблем является ошибка "Файл не найден" при попытке использования компонента. В данной статье мы рассмотрим, как можно решить эту проблему.
Описание проблемы
Пользователи, столкнувшиеся с ошибкой, сообщают, что при попытке навигации в TEdgeBrowser возникает сообщение об ошибке, указывающее на отсутствие файла. Это приводит к появлению кода ошибки -2147024894, что соответствует ERROR_FILE_NOT_FOUND.
Процедура, вызывающая данную ошибку, выглядит следующим образом:
procedure TFrmTEdgeBrowser.BtnNavigateClick(Sender: TObject);
var
lErrCode: Integer;
begin
if not EdgeBrowser.Navigate('https://www.google.com') then
begin
lErrCode := EdgeBrowser.LastErrorCode;
ShowMessage(IntToStr(lErrCode) + ': ' + SysErrorMessage(lErrCode));
end;
end;
Последовательность действий, предпринятых пользователями для решения проблемы, включала:
Создание новой виртуальной машины на базе Windows 10.
Установка Microsoft Edge.
Установка EdgeHTML SDK через GetIt.
Копирование файла WebView2Loader.dll в директорию приложения.
Конфигурация, при которой возникала ошибка, включала:
Среда разработки: Delphi 10.4.3 Sydney.
Тип приложения: 32-битное приложение.
Операционная система: Windows 10 в виртуальной машине.
Установленная версия Microsoft Edge: 84.0.522.52.
Попытки решения проблемы включали:
Проверка URL на наличие протокола https.
Перезагрузка системы.
Использование события TApplicationEvents.OnException для получения дополнительной информации.
Запуск демонстрационного проекта EdgeBrowser.dproj с копированным файлом WebView2Loader.dll в директорию проекта.
Однако, несмотря на предпринятые меры, ошибка не устранялась, и код ошибки AResult в процедуре EdgeBrowserCreateWebViewCompleted изменялся на -2147467259, что указывало на проблемы, связанные с данными или ODBC.
Обновление до последней версии Microsoft.Web.Webview2 также не принесло желаемого результата.
Подтвержденное решение
Исходя из комментариев, было замечено, что загрузка бета-версии Microsoft Edge позволила устранить проблему. Один из пользователей установил бета-версию 85.0.564.30 (64-бит) вместо официальной версии 84.0.522.59 (64-бит), что привело к успешному решению проблемы.
Также было отмечено, что в документации рекомендуется использовать версию Microsoft Edge из канала Canary, которая может быть необходима для совместимости с предварительной версией WebView2 SDK.
Альтернативный ответ
В качестве альтернативного решения предлагается проверить с помощью Process Explorer, что файл WebView2Loader.dll корректно загружается в память вашего приложения и не загружается из других мест.
Заключение
При работе с новыми технологиями, такими как TEdgeBrowser, важно следить за обновлениями и рекомендациями разработчиков. В данном случае, установка бета-версии или канальной версии Microsoft Edge может помочь решить проблему с ошибкой "Файл не найден". Следует также помнить о возможности обновления других компонентов системы и проверке корректности работы с ними.
Разработчики, использующие `TEdgeBrowser` в Delphi 10.4.3, сталкиваются с ошибкой 'Файл не найден', которую можно устранить, установив бета-версию Microsoft Edge.
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.