Для студентов МГТУ им. Н.Э.Баумана по предмету ИнформатикаLazarus 2.2.4 +CEF4Delphi + CEF 90.5.4Lazarus 2.2.4 +CEF4Delphi + CEF 90.5.4
2024-03-02СтудИзба

Portable Lazarus 2.2.4 + CEF4Delphi + CEF 90.5.4 Lazarus со встроенным (установленным) пакетом CEF4Delphi_Lazarus 90.5.4 Также установлен бинарный файл cef_binary_90.5.4+gc6a4331+chromium-90.0.4430.72_windows64

Описание

Полная сборка установленная (Portable) Lazarus 2.2.4 + CEF4Delphi + CEF 90.5.4
Lazarus со встроенным (установленным) пакетом CEF4Delphi_Lazarus 90.5.4
Также установлен бинарный файл cef_binary_90.5.4+gc6a4331+chromium-90.0.4430.72_windows64

Теперь можно открывать демо-приложения находящиеся в сборке, можете создать браузер в Lazarus и так далее.





Этот файл представляет собой полную сборку установленного (Portable) Lazarus 2.2.4, интегрированного с CEF4Delphi и Chromium Embedded Framework (CEF) версии 90.5.4. Сборка включает Lazarus с предварительно установленным пакетом CEF4Delphi_Lazarus 90.5.4, обеспечивая мгновенную готовность к разработке веб-ориентированных приложений прямо из Lazarus IDE.
Компоненты:
  1. Lazarus 2.2.4: Популярная среда разработки для языка программирования Pascal, обладающая обширным набором инструментов для разработки программного обеспечения.
  2. CEF4Delphi 90.5.4: Компонент Delphi для интеграции с Chromium Embedded Framework, позволяющий создавать браузерные приложения с использованием языка Pascal.
  3. CEF 90.5.4: Бинарный файл Chromium Embedded Framework версии 90.5.4, который обеспечивает мощный механизм встраивания браузера в приложения с помощью Lazarus.
Функциональность:
С этим файлом вы сможете открывать демонстрационные приложения, включенные в сборку, а также легко создавать собственные браузерные приложения, используя Lazarus. Вы можете начать разработку прямо сейчас, не тратя времени на установку и настройку необходимых компонентов.
Преимущества:
  • Портативность: Файл обеспечивает портативность, что позволяет использовать Lazarus и CEF на различных компьютерах без необходимости повторной установки.
  • Готовность к использованию: Все компоненты уже установлены и настроены для работы вместе, что существенно упрощает начало работы с разработкой веб-ориентированных приложений.
  • Полная функциональность: Благодаря включению бинарного файла CEF, вы получаете доступ ко всем возможностям Chromium для создания высокопроизводительных и современных веб-приложений.



MiniBrowser и так далее все приложения готовы



Этот файл предоставляет все необходимое для эффективной разработки браузерных приложений с использованием Lazarus и CEF4Delphi. Наслаждайтесь простотой и удобством разработки, начиная с этой полностью подготовленной сборки.


CEF4Delphi-компоненты

CEF4Delphi поставляется со многими компонентами и классами VCL, FMX и LCL для встраивания веб-браузера во все возможные параметры конфигурации CEF.
TCEFПриложение
Основным классом, используемым для упрощения инициализации и уничтожения CEF, является TCEFApplication, и в большинстве демонстрационных программ GlobalCEFApp создается как экземпляр TCEFApplication.
Демонстрации SubProcess являются исключением из этого правила, чтобы избежать некоторых проблем с MS Office, и вместо этого они используют TCEFApplicationCore.
TCEFApplication автоматически создает некоторые обработчики CEF , только если они необходимы. Этими обработчиками являются CefApp, CefBrowserProcessHandler, CefRenderProcessHandler, CefResourceBundleHandler и CefLoadHandler.
Прочтите это для получения дополнительной информации об этом классе.
TChromium / TFMXChromium
Это компонент, который объединяет все процедуры, функции, свойства и события браузера в одном месте. В нем есть все необходимое для создания, изменения и уничтожения веб-браузера.
Приложения VCL и LCL используют TChromium, а приложения FireMonkey используют TFMXChromium. Оба компонента наследуют от TChromiumCore, который содержит большую часть кода, но для простоты вы увидите много ссылок на TChromium на форуме.
TChromiumCore также создает множество обработчиков CEF , только если они необходимы, например CefClient, CefResourceRequestHandler и т. д.
Прочтите это для получения дополнительной информации об этом компоненте.
TCEFWindowParent/TFMXWindowParent
Компонент TCEFWindowParent используется в приложениях VCL и LCL вместе с компонентом TChromium для встраивания веб-браузера в обычном режиме.
Как отмечалось ранее, браузеры в обычном режиме позволяют CEF создавать некоторые собственные дочерние элементы управления для отображения в них веб-содержимого. TCEFWindowParent наследует TCEFWinControl и используется в качестве родительского элемента этих дочерних элементов управления. TCEFWindowParent также автоматически контролирует размер этих дочерних элементов управления. Подробности смотрите в демо-версии SimpleBrowser2.
TFMXWindowParent — это компонент FireMonkey, имеющий ту же цель, что и TCEFWindowParent, но из-за структуры кода FMX он должен наследовать от TCommonCustomForm.
TFMXWindowParent используется с компонентом TFMXChromium и должен быть создан во время выполнения. Дополнительную информацию см. в демо-версии SimpleFMXBrowser.
TCEFLinkedWindowParent
Этот компонент может использоваться приложениями VCL и LCL. Он имеет ту же цель, что и TCEFWindowParent, но имеет свойство Chromium , позволяющее напрямую связать его с компонентом TChromium.
TCEFLinkedWindowParent изменяет размеры дочерних элементов управления, созданных CEF для браузеров в обычном режиме, и устанавливает фокус браузера с помощью связанного компонента TChromium.
TCEFWindowParent и TCEFLinkedWindowParent отлично работают в Windows, и вы можете использовать любой из них, но не можете использовать TCEFWindowParent в Linux или MacOS.
TBufferPanel/TFMXBufferPanel
TBufferPanel используется приложениями VCL и LCL с браузерами в режиме OSR для отображения содержимого браузера. TFMXBufferPanel имеет ту же цель, но используется в приложениях FireMonkey.
Подробности смотрите в демо-версии SimpleOSRBrowser.
TCEFWorkScheduler/TFMXWorkScheduler
TCEFWorkScheduler используется приложениями VCL и LCL, использующими браузеры CEF с отключенным многопоточным циклом сообщений. TFMXWorkScheduler имеет ту же цель, но используется в приложениях FireMonkey.
Эти компоненты обрабатывают вызовы GlobalCEFApp.DoMessageLoopWork, используя параметр DelayMs в событии GlobalCEFApp.OnScheduleMessagePumpWork.
Приложения VCL и LCL должны создать GlobalCEFWorkScheduler как экземпляр TCEFWorkScheduler перед созданием GlobalCEFApp.
Приложения FMX должны создать GlobalFMXWorkScheduler как экземпляр TFMXWorkScheduler перед созданием GlobalCEFApp.
Также необходимо уничтожить GlobalCEFApp перед уничтожением GlobalCEFWorkScheduler или GlobalFMXWorkScheduler.
Все подробности реализации см. в демонстрациях ExternalPumpBrowser и FMXExternalPumpBrowser.
TChromiumWindow
TChromiumWindow был создан для встраивания чрезвычайно простых веб-браузеров немного более простым способом, чем использование пары TChromium и TCEFWindowParent.
TChromiumWindow можно использовать в приложениях VCL и LCL с браузерами в обычном режиме, но если вы используете много событий и процедур TChromium, вам следует рассмотреть возможность использования других компонентов.
Подробности смотрите в демо-версии SimpleBrowser.
TBrowserWindow / TOSRBrowserWindow
TBrowserWindow — это компонент LCL, который упрощает создание мультиплатформенных приложений со встроенными веб-браузерами в обычном режиме. TOSRBrowserWindow имеет ту же цель, но использует браузеры в режиме OSR.
Если вы используете один и тот же исходный код для создания приложения для Windows, Linux и MacOS с помощью Lazarus, рекомендуется использовать эти компоненты.
TBrowserWindow и TOSRBrowserWindow были созданы Martin_fr (он же User4martin ), одним из администраторов проекта Lazarus.
Для получения более подробной информации посмотрите все демо-версии в каталоге Lazarus_any_OS.
TCEFServerComponent
TCEFServerComponent позволяет создать небольшой сервер HTTP и WebSocket в приложениях VCL, LCL и FMX.
Его можно использовать для реализации межпроцессного взаимодействия (IPC) между приложением и локальным хостом.
Более подробную информацию смотрите в демо-версии SimpleServer.
TCEFURLRequestClientComponent
TCEFUrlRequestClientComponent позволяет вам выполнять URL-запросы, не связанные с каким-либо браузером, из приложения VCL, LCL или FMX.
Дополнительную информацию см. в демо-версии URLRequest.
ТЦЕФСентинел
TCEFSentinel используется в качестве таймера, который проверяет количество запущенных процессов CEF, когда вы закрываете все браузеры перед выключением.
Этот компонент используется только в крайнем случае, когда в CEF или CEF4Delphi возникает неразрешенная проблема с завершением работы, которая генерирует исключения при закрытии приложения.
Платформа представлений Chromium
Все компоненты на вкладке Chromium Views Framework позволяют использовать виджеты Views/Aura и менеджеры макетов в приложениях VCL и LCL.
CEF использует эту структуру графического пользовательского интерфейса внутри Windows, Linux и MacOS для создания браузеров.
См. демонстрацию ToolBoxBrowser2 и прочтите этот документ для получения более подробной информации об этой платформе.

Создание веб-браузера

Когда GlobalCEFApp настроен со значениями по умолчанию, CEF включает многопоточный цикл сообщений и инициализируется в фоновом потоке после вызова GlobalCEFApp.StartMainProcess.
Браузеры CEF можно создавать только после завершения инициализации CEF, и это может вызвать состояние гонки, если приложение пытается создать браузер при первом отображении основной формы приложения.
В большинстве демонстраций используется простой TTimer для повтора вызова TChromium.CreateBrowser через несколько миллисекунд, но также можно использовать событие TCEFApplication.OnGlobalContextInitialized для отправки сообщения в главную форму и последующего создания браузеров.
Приложения Lazarus решают эту проблему автоматически, если вы используете TBrowserWindow или TOSRBrowserWindow.

Завершение работы приложения

Chromium требует, чтобы все браузеры в вашем приложении были корректно закрыты перед уничтожением GlobalCEFApp, что является последним шагом в файле проекта.
Браузеры CEF должны выполнить следующие шаги, чтобы правильно их закрыть:
  1. Вызовите TChromium.CloseBrowser.
  2. Дождитесь события TChromium.OnClose.
  3. Дождитесь события TChromium.OnBeforeClose.
Каждая демонстрация имеет более подробную последовательность уничтожения в комментариях к коду, поскольку каждая конфигурация браузера может добавить еще несколько шагов или пропустить какой-то шаг, но в целом вашему приложению следует дождаться выполнения всех событий TChromium.OnBeforeClose, прежде чем закрывать приложение.
Прочтите комментарии к коду в демонстрации, которую вы использовали в качестве шаблона для своего приложения, чтобы узнать больше деталей.

CEF4Delphi и FireMonkey

FireMonkey — это очень мощная платформа, способная создавать приложения для Windows, MacOS, Linux, iOS и Android с одним и тем же кодом, но этот уровень абстракции может немного усложнить задачу, поскольку CEF требуется доступ к некоторым функциям на более низких уровнях API.
Например, в некоторых демонстрациях Windows используется собственный класс, реализующий интерфейс IFMXApplicationService для доступа к сообщениям Windows. По той же причине в некоторых других демонстрациях используется специальная процедура WndProc. В MacOS демонстрационная версия использует собственный класс, реализующий интерфейс IFMXApplicationService для реализации CrAppProtocol, который требуется Chromium.
Если вам нужно встроить браузер CEF с CEF4Delphi в приложение FireMonkey, вам необходимо добавить $(FrameworkType) в качестве условного определения в параметрах проекта.
Для этого откройте меню «Проект» и нажмите «Параметры…» . Затем выберите параметр «Сборка → Компилятор Delphi» слева, выберите «Все конфигурации» в поле «Цель» и введите $(FrameworkType) в поле «Условные определения» .
Вы также можете использовать FMX без кавычек вместо $(FrameworkType), если условное определение не работает в этом проекте.

CEF4Delphi демо

В каталоге CEF4Delphidemos есть несколько каталогов с демо-версиями Delphi и Lazarus:
  1. Delphi_FMX_Linux
    • FMXExternalPumpBrowser2Браузер в режиме OSR, который использует внешний насос сообщений с разными исполняемыми файлами для подпроцессов.
  2. Delphi_FMX_Mac
    • FMXExternalPumpBrowserБраузер в режиме OSR, который использует внешний насос сообщений с 4 пакетами приложений для подпроцессов.
  3. Delphi_FMX_Windows
    • FMXExternalPumpBrowserБраузер в режиме OSR, использующем внешний насос сообщений.
    • FMXTabbedБраузерНесколько браузеров во вкладках в обычном режиме.
    • FMXTabbedOSRBrowserНесколько браузеров во вкладках в режиме OSR.
    • FMXToolBoxБраузерБраузер в дочерней форме в обычном режиме.
    • SimpleFMXБраузерПростой браузер в обычном режиме.
  4. Delphi_VCL
    • КонсольБраузерБраузер в режиме OSR, созданный в DLL, загружаемой из консольного приложения.
    • КонсольБраузер2Консольное приложение, которое создает браузер OSR в потоке и делает снимок экрана.
    • CookieПосетительБраузер, который использует TCefCookieManagerRef для чтения всех файлов cookie.
    • CustomResourceBrowserПростой браузер, который показывает настроенные ресурсы и веб-страницы вместо веб-сайтов Интернета.
    • DLLБраузерВеб-браузер, созданный из DLL.
    • DOMПосетительБазовый посетитель DOM, использующий классы CEF. Он включает в себя поиск узлов и итерацию DOM.
    • РедакторБраузерРедактор HTML с использованием TChromium и TCEFWindowParent.
    • Расширения
      • HelloWorldExtЗагружает простое расширение Hello World .
      • СтраницаЦветExtЗагружает расширение Set Page Color , которое позволяет изменить цвет фона страницы.
    • Внешний браузер насосаБраузер, созданный с использованием компонентов TChromium и TCEFWindowParent с использованием внешнего насоса сообщений.
    • Полноэкранный браузерПростой полноэкранный браузер, использующий TChromium и TCEFWindowParent. Для выхода используется клавиша ESC.
    • jаvascript
      • CustomTitleBarБраузер, использующий расширение JS, которое управляет формой Delphi.
      • JSDialogДемонстрация, показывающая, как использовать вырезанные диалоги JS.
      • JSEvalВ этой демонстрации оценивается код jаvascript с использованием V8Context.
      • JSExecutingFunctionsВ этой демонстрации показано, как регистрировать и выполнять пользовательские функции JS с помощью собственных реализаций.
      • JSExtensionДемонстрация, показывающая, как зарегистрировать базовое расширение JS с функцией и как отправлять информацию между процессами.
      • JSExtensionWithFunctionДемонстрация, показывающая, как зарегистрировать расширение JS с помощью функции, возвращающей значение.
      • JSExtensionWithObjectParameterДемонстрация, показывающая, как зарегистрировать расширение JS с помощью функции, имеющей параметр.
      • JSRTTIРасширениеЭта демонстрация похожа на JSExtension, но для регистрации расширения используется RTTI.
      • JSSimpleExtensionВ этой демонстрации регистрируется расширение JS, которое устанавливает значение переменной.
      • JSSimpleWindowBindingДемонстрация, показывающая, как прикрепить значения к объекту окна фрейма.
      • JSWindowBindingSubProcessЭта демонстрация похожа на JSSimpleWindowBinding, но для подпроцессов использует другой исполняемый файл.
      • JSWindowBindingWithArrayBufferЭта демонстрация похожа на JSSimpleWindowBinding, но она присоединяет значение с помощью буфера массива.
      • JSWindowBindingWithFunctionДемонстрация, показывающая, как привязать функцию к объекту окна.
      • JSWindowBindingWithObjectЭта демонстрация похожа на JSSimpleWindowBinding, но она присоединяет значение к объекту.
    • КиоскOSRBбраузерПолноэкранный киоск-браузер в режиме OSR с виртуальной клавиатурой, которая отображается автоматически, когда пользователь нажимает на редактируемый элемент HTML. В контекстном меню также есть возможность показать/скрыть клавиатуру. Нажмите клавишу ESC, чтобы выйти из этой демонстрации.
    • МДИБраузерНесколько компонентов TChromium в одном приложении MDI.
    • MDIExternalPumpBrowserНесколько компонентов TChromium в одном приложении MDI с использованием конфигурации внешнего насоса сообщений.
    • МедиамаршрутизаторДемонстрация, показывающая, как использовать обнаружение мультимедийных устройств и обмен сообщениями.
    • МиниБраузерВеб-браузер, использующий TChromium и TCEFWindowParent. Он имеет настраиваемые контекстные меню, базовый интерфейс веб-браузера, инструменты разработчика, масштабирование, печать, настройки прокси-сервера и некоторые дополнительные функции для копирования печати HTML и jаvascript.
    • OAuth2TesterАутентификация пользователя с помощью запросов OAuth 2.0 и REST API с использованием TCEFServerComponent и TCEFurlRequestClientComponent.
    • OSRexternalPumpBrowserБраузер в режиме OSR с использованием внешнего насоса сообщений.
    • Всплывающее окноБраузерВ этой демонстрации показано, как использовать пользовательские формы со всплывающими окнами в режиме OSR.
    • Всплывающее окноБраузер2В этой демонстрации показано, как использовать пользовательские формы со всплывающими окнами в обычном режиме.
    • ПостИнспекторБраузерВеб-браузер с инспектором данных POST.
    • ResponseFilterБраузерБраузер, созданный на основе компонентов TChromium и TCEFWindowParent и использующий настраиваемый фильтр ответов.
    • СхемаРегистрацияБраузерРегистрация схемы URL-адресов, которая показывает настроенные веб-страницы.
    • Простой БраузерСамый простой веб-браузер, созданный с помощью CEF4Delphi. Он использует компонент TChromiumWindow.
    • Простой Браузер2Самый простой веб-браузер, созданный с помощью CEF4Delphi. Он использует комбинацию двух компонентов: TChromium и TCEFWindowParent.
    • ПростойВнешнийНасосБраузерБраузер, созданный с использованием компонента TChromiumWindow с использованием конфигурации внешнего насоса сообщений.
    • SimpleOSRBrowserВеб-браузер, использующий TChromium в режиме OSR, на случай, если вам понадобится внеэкранный рендеринг.
    • SimpleServerСервер HTTP и веб-сокетов, созданный с помощью компонента TCEFServerComponent для связи между приложениями на локальном хосте.
    • ПодпроцессВеб-браузер, использующий другой исполняемый файл для подпроцессов CEF.
    • Браузер с вкладкамиНесколько компонентов TChromium и TCEFWindowParent на вкладках.
    • Браузер с вкладками2Несколько компонентов TChromium и TCEFWindowParent внутри TFrame на листах вкладок.
    • КрошечныйБраузерКрошечный веб-браузер, созданный с помощью Views Framework без VCL или FMX.
    • КрошечныйБраузер2Чрезвычайно простой браузер, похожий на демо-версию cefsimple в проекте CEF.
    • Ящик Для ИнструментовБраузерНесколько компонентов TChromium в одном приложении с использованием форм ToolBox.
    • Панель инструментовБраузер2Простой браузер в дочерней форме, созданный с помощью Views Framework .
    • ToolBoxSubProcessБраузерДемонстрация аналогична ToolBoxBrowser, но использует другой исполняемый файл для подпроцессов CEF.
    • URL-запросДемонстрация, показывающая, как выполнять URL-запросы с помощью компонента TCEFurlRequestClientComponent.
    • Снимок веб-страницыНастольное приложение, которое создает браузер OSR в потоке и делает снимок экрана.
  5. Lazarus_any_OS
    • AppHelperВспомогательный исполняемый файл, используемый демонстрациями MacOS для подпроцессов CEF.
    • Окно браузераДемонстрация веб-браузера с использованием компонента TBrowserWindow.
    • БраузерWindowDomДемо-версия похожа на BrowserWindow, но включает посетителя DOM.
    • БраузерWindowExНесколько компонентов TBrowserWindow в одной форме.
    • БраузерWindowOsrDomВеб-браузер, использующий компонент TOsrBrowserWindow в режиме OSR с посетителем DOM.
    • Внешний браузер насосаДемонстрация с использованием TChromium и TCEFLinkedWindowParent для любой ОС с конфигурацией внешнего насоса сообщений.
  6. Lazarus_Linux
    • Внешний браузер насосаБраузер, созданный с использованием компонентов TChromium и TCEFLinkedWindowParent с использованием внешнего насоса сообщений.
    • МиниБраузерВеб-браузер, использующий TChromium и TCEFLinkedWindowParent в обычном режиме. Он имеет настраиваемые контекстные меню, базовый интерфейс веб-браузера, инструменты разработчика, масштабирование, печать и т. д.
    • OSRexternalPumpBrowserБраузер в режиме OSR с использованием внешнего насоса сообщений.
    • Всплывающее окноБраузер2В этой демонстрации показано, как использовать пользовательские формы со всплывающими окнами в обычном режиме.
    • Простой БраузерСамый простой веб-браузер, созданный с помощью CEF4Delphi. Он использует компонент TChromiumWindow.
    • Простой Браузер2Самый простой веб-браузер, созданный с помощью CEF4Delphi. Он использует комбинацию двух компонентов: TChromium и TCEFLinkedWindowParent.
    • SimpleOSRBrowserВеб-браузер, использующий TChromium в режиме OSR, на случай, если вам понадобится внеэкранный рендеринг.
    • ПодпроцессВеб-браузер, использующий другой исполняемый файл для подпроцессов CEF.
    • Браузер с вкладками2Несколько компонентов TChromium и TCEFLinkedWindowParent внутри TFrame на листах вкладок.
    • КрошечныйБраузер2Чрезвычайно простой браузер, похожий на демо-версию cefsimple в проекте CEF.
  7. Lazarus_Mac
    • Внешний браузер насосаБраузер, созданный с использованием компонентов TChromium и TCEFLinkedWindowParent с использованием внешнего насоса сообщений.
  8. Lazarus_Windows
    • КонсольБраузер2Консольное приложение, которое создает браузер OSR в потоке и делает снимок экрана.
    • CookieПосетительБраузер, который использует TCefCookieManagerRef для чтения всех файлов cookie.
    • CustomResourceBrowserПростой браузер, который показывает настроенные ресурсы и веб-страницы вместо веб-сайтов Интернета.
    • DOMПосетительБазовый посетитель DOM, использующий классы CEF. Он включает в себя поиск узлов и итерацию DOM.
    • РедакторБраузерРедактор HTML с использованием TChromium и TCEFWindowParent.
    • Внешний браузер насосаБраузер, созданный с использованием компонентов TChromium и TCEFWindowParent с использованием внешнего насоса сообщений.
    • Полноэкранный браузерПростой полноэкранный браузер, использующий TChromium и TCEFWindowParent. Для выхода используется клавиша ESC.
    • jаvascript
      • JSDialogДемонстрация, показывающая, как использовать вырезанные диалоги JS.
      • JSEvalВ этой демонстрации оценивается код jаvascript с использованием V8Context.
      • JSExecutingFunctionsВ этой демонстрации показано, как регистрировать и выполнять пользовательские функции JS с помощью собственных реализаций.
      • JSExtensionДемонстрация, показывающая, как зарегистрировать базовое расширение JS с функцией и как отправлять информацию между процессами.
      • JSExtensionWithFunctionДемонстрация, показывающая, как зарегистрировать расширение JS с помощью функции, возвращающей значение.
      • JSExtensionWithObjectParameterДемонстрация, показывающая, как зарегистрировать расширение JS с помощью функции, имеющей параметр.
      • JSSimpleExtensionВ этой демонстрации регистрируется расширение JS, которое устанавливает значение переменной.
      • JSSimpleWindowBindingДемонстрация, показывающая, как прикрепить значения к объекту окна фрейма.
      • JSWindowBindingSubProcessЭта демонстрация похожа на JSSimpleWindowBinding, но для подпроцессов использует другой исполняемый файл.
      • JSWindowBindingWithArrayBufferЭта демонстрация похожа на JSSimpleWindowBinding, но она присоединяет значение с помощью буфера массива.
      • JSWindowBindingWithFunctionДемонстрация, показывающая, как привязать функцию к объекту окна.
      • JSWindowBindingWithObjectЭта демонстрация похожа на JSSimpleWindowBinding, но она присоединяет значение к объекту.
    • МедиамаршрутизаторДемонстрация, показывающая, как использовать обнаружение мультимедийных устройств и обмен сообщениями.
    • МиниБраузерВеб-браузер, использующий TChromium и TCEFWindowParent. Он имеет настраиваемые контекстные меню, базовый интерфейс веб-браузера, инструменты разработчика, масштабирование, печать, настройки прокси-сервера и некоторые дополнительные функции для копирования печати HTML и jаvascript.
    • OAuth2TesterАутентификация пользователя с помощью запросов OAuth 2.0 и REST API с использованием TCEFServerComponent и TCEFurlRequestClientComponent.
    • OSRexternalPumpBrowserБраузер в режиме OSR с использованием внешнего насоса сообщений.
    • Всплывающее окноБраузерВ этой демонстрации показано, как использовать пользовательские формы со всплывающими окнами в режиме OSR.
    • Всплывающее окноБраузер2В этой демонстрации показано, как использовать пользовательские формы со всплывающими окнами в обычном режиме.
    • ПостИнспекторБраузерВеб-браузер с инспектором данных POST.
    • СхемаРегистрацияБраузерРегистрация схемы URL-адресов, которая показывает настроенные веб-страницы.
    • Простой БраузерСамый простой веб-браузер, созданный с помощью CEF4Delphi. Он использует компонент TChromiumWindow.
    • Простой Браузер2Самый простой веб-браузер, созданный с помощью CEF4Delphi. Он использует комбинацию двух компонентов: TChromium и TCEFWindowParent.
    • ПростойВнешнийНасосБраузерБраузер, созданный с использованием компонента TChromiumWindow с использованием конфигурации внешнего насоса сообщений.
    • SimpleOSRBrowserВеб-браузер, использующий TChromium в режиме OSR, на случай, если вам понадобится внеэкранный рендеринг.
    • SimpleServerСервер HTTP и веб-сокетов, созданный с помощью компонента TCEFServerComponent для связи между приложениями на локальном хосте.
    • ПодпроцессВеб-браузер, использующий другой исполняемый файл для подпроцессов CEF.
    • Браузер с вкладкамиНесколько компонентов TChromium и TCEFWindowParent на вкладках.
    • Браузер с вкладками2Несколько компонентов TChromium и TCEFWindowParent внутри TFrame на листах вкладок.
    • КрошечныйБраузерКрошечный веб-браузер, созданный с помощью Views Framework без LCL.
    • КрошечныйБраузер2Чрезвычайно простой браузер, похожий на демо-версию cefsimple в проекте CEF.
    • Ящик Для ИнструментовБраузерНесколько компонентов TChromium в одном приложении с использованием форм ToolBox.
    • Панель инструментовБраузер2Простой браузер в дочерней форме, созданный с помощью Views Framework .
    • URL-запросДемонстрация, показывающая, как выполнять URL-запросы с помощью компонента TCEFurlRequestClientComponent.
    • Снимок веб-страницыНастольное приложение, которое создает браузер OSR в потоке и делает снимок экрана.

Full assembly installed (Portable) Lazarus 2.2.4 + CEF4Delphi + CEF 90.5.4
Lazarus with built-in (installed) package CEF4Delphi_Lazarus 90.5.4
The cef_binary_90 binary file is also installed.5.4+gc6a4331+chromium-90.0.4430.72_windows64

Now you can open demo applications that are in the build, you can create a browser in Lazarus, and so on.


This file is a complete build of the installed (Portable) Lazarus 2.2.4 integrated with CEF4Delphi and Chromium Embedded Framework (CEF) version 90.5.4. The build includes Lazarus with the pre-installed package CEF4Delphi_Lazarus 90.5.4, providing instant readiness to develop web-oriented applications directly from the Lazarus IDE.
Components:
Lazarus 2.2.4: A popular development environment for the Pascal programming language, with an extensive set of software development tools.
CEF4Delphi 90.5.4: Delphi component for integration with Chromium Embedded Framework, which allows you to create browser applications using the Pascal language.
CEF 90.5.4: A binary file of Chromium Embedded Framework version 90.5.4, which provides a powerful mechanism for embedding the browser into applications using Lazarus.
Functionality:
With this file, you can open demo applications included in the build, as well as easily create your own browser applications using Lazarus. You can start development right now without wasting time installing and configuring the necessary components.
Advantages:
Portability: The file provides portability, which allows you to use Lazarus and CEF on different computers without having to reinstall.
Ready to use: All components are already installed and configured to work together, which makes it much easier to get started with the development of web-oriented applications.
Full functionality: Thanks to the inclusion of the CEF binary file, you get access to all the features of Chromium to create high-performance and modern web applications.
This file provides everything you need to effectively develop browser applications using Lazarus and CEF4Delphi. Enjoy the simplicity and convenience of development, starting with this fully prepared build.

CEF4Delphi components

CEF4Delphi comes with many VCL, FMX and LCL components and classes to embed a web browser in all possible CEF configuration settings.
TCEFApplication
The main class used to simplify the CEF initialization and destruction is TCEFApplication and most of the demos create GlobalCEFApp as a TCEFApplication instance.
The SubProcess demos are an exception to this rule to avoid some issues with MS Office and they use TCEFApplicationCore instead.
TCEFApplication creates automatically some CEF handlers only if they are needed. Those handlers are CefApp, CefBrowserProcessHandler, CefRenderProcessHandler, CefResourceBundleHandler and CefLoadHandler.
Read this for more information about this class.
TChromium / TFMXChromium
This is the component that puts together all browser procedures, functions, properties and events in one place. It has all you need to create, modify and destroy a web browser.
VCL and LCL applications use TChromium but FireMonkey applications use TFMXChromium. Both components inherit from TChromiumCore which has most of the code but you'll see many references to TChromium in the forum to keep it simple.
TChromiumCore also creates many CEF handlers only if they are needed like CefClient, CefResourceRequestHandler, etc.
Read this for more information about this component.
TCEFWindowParent / TFMXWindowParent
The TCEFWindowParent component is used in VCL and LCL applications along with a TChromium component to embed a web browser in normal mode.
As commented previously, browsers in normal mode let CEF create some native child controls to show the web contents in them. TCEFWindowParent inherits from TCEFWinControl and it's used as the parent of those child controls. TCEFWindowParent also controls the size of those child controls automatically. See the SimpleBrowser2 demo for more details.
TFMXWindowParent is a FireMonkey component with the same purpose as TCEFWindowParent but due to FMX's code structure it has to inherit from TCommonCustomForm.
TFMXWindowParent is used with a TFMXChromium component and it has to be created at runtime. See the SimpleFMXBrowser demo for more details.
TCEFLinkedWindowParent
This component can be used by VCL and LCL applications. It has the same purpose as TCEFWindowParent but it has a Chromium property to link it directly to a TChromium component.
TCEFLinkedWindowParent resizes the child controls created by CEF for browsers in normal mode and sets the browser focus using the linked TChromium component.
TCEFWindowParent and TCEFLinkedWindowParent work fine in Windows and you can used any of them but you can't use TCEFWindowParent in Linux or MacOS.
TBufferPanel / TFMXBufferPanel
TBufferPanel is used by VCL and LCL applications with browsers in OSR mode to draw the browser contents. TFMXBufferPanel has the same purpose but it's used in FireMonkey applications.
See the SimpleOSRBrowser demo for more details.
TCEFWorkScheduler / TFMXWorkScheduler
TCEFWorkScheduler is used by VCL and LCL applications using CEF browsers with a disabled multithreaded message loop. TFMXWorkScheduler has the same purpose but it's used in FireMonkey applications.
These components handle the GlobalCEFApp.DoMessageLoopWork calls using the delayMs parameter in the GlobalCEFApp.OnScheduleMessagePumpWork event.
VCL and LCL applications must create GlobalCEFWorkScheduler as an instance of TCEFWorkScheduler before creating GlobalCEFApp.
FMX applications must create GlobalFMXWorkScheduler as an instance of TFMXWorkScheduler before creating GlobalCEFApp.
It's also necessary to destroy GlobalCEFApp before destroying GlobalCEFWorkScheduler or GlobalFMXWorkScheduler.
See the ExternalPumpBrowser and FMXExternalPumpBrowser demos for all the implementation details.
TChromiumWindow
TChromiumWindow was created to embed extremely simple web browsers in a slightly easier way than using a TChromium and a TCEFWindowParent pair.
TChromiumWindow can be used in VCL and LCL applications with browsers in normal mode but if you use many TChromium events and procedures you should consider using the other components.
See the SimpleBrowser demo for all the details.
TBrowserWindow / TOSRBrowserWindow
TBrowserWindow is a LCL component that simplifies the creation of multi-platform applications with embedded web browsers in normal mode. TOSRBrowserWindow has the same purpose but it uses browsers in OSR mode.
If you use the same source code to build a Windows, Linux and MacOS application with Lazarus then it's recommended to use these components.
TBrowserWindow and TOSRBrowserWindow were created by Martin_fr (a.k.a. User4martin), one of the Lazarus project administrators.
See all the demos in the Lazarus_any_OS directory for more details.
TCEFServerComponent
TCEFServerComponent allows you to create a small HTTP and WebSocket server in VCL, LCL and FMX applications.
It can be used to implement inter-process communication (IPC) between an application and a local host.
See the SimpleServer demo for more details.
TCEFURLRequestClientComponent
TCEFUrlRequestClientComponent allows you to make URL requests unrelated to any browser from a VCL, LCL or FMX application.
See the URLRequest demo for more details.
TCEFSentinel
TCEFSentinel is used as a timer that checks the number of running CEF processes when you close all browsers before shutdown.
This component is only used as a last resort when there's an unresolved shutdown issue in CEF or CEF4Delphi that generates exceptions when the application is closed.
Chromium Views Framework
All the components in the Chromium Views Framework tab allow you to use Views/Aura widgets and layout managers in VCL and LCL applications.
CEF uses this GUI framework internally on Windows, Linux and MacOS to create the browsers.
See the ToolBoxBrowser2 demo and read this document for more details about this framework.

Web browser creation

When GlobalCEFApp is configured with the default values CEF enables the multithreaded message loop and it's initialized in a background thread after the GlobalCEFApp.StartMainProcess call.
CEF browsers can only be created when the CEF initialization is complete and this can cause a race condition if an application tries to create a browser when the main application form is shown for the first time.
Most of the demos use a simple TTimer to retry the TChromium.CreateBrowser call after a few milliseconds but it's also possible to use the TCEFApplication.OnGlobalContextInitialized event to send a message to the main form and then create the browsers.
Lazarus applications handle this issue automatically if you use TBrowserWindow or TOSRBrowserWindow.

Application shutdown

Chromium requires that all the browsers in your application should be closed correctly before destroying GlobalCEFApp, which is the last step in the project file.
CEF browsers must follow these steps in order to close them correctly :
  1. Call TChromium.CloseBrowser.
  2. Wait for the TChromium.OnClose event.
  3. Wait for the TChromium.OnBeforeClose event.
Each demo has a more detailed destruction sequence in the code comments because each browser configuration can add a few more steps or skip some step but in general, your application should wait until all the TChromium.OnBeforeClose events are executed before closing the application.
Read the code comments in the demo you used as a template for your application to know more details.

CEF4Delphi and FireMonkey

FireMonkey is a very powerful framework capable of creating applications for Windows, MacOS, Linux, iOS and Android with the same code but that abstraction layer can make things a little more complicated because CEF needs access to some features at lower API levels.
For example, some Windows demos use a custom class that implements the IFMXApplicationService interface to access Windows messages. Some other demos use a custom WndProc procedure for the same reason. In MacOS the demo uses a custom class that implements the IFMXApplicationService interface to implement CrAppProtocol which is required by Chromium.
If you need to embed a CEF browser with CEF4Delphi in a FireMonkey application you need to add $(FrameworkType) as a conditional define in the project options.
To do that, open the Project menu and click on Options.... Then select the Building→Delphi Compiler option to the left, select All configurations in the Target box and type $(FrameworkType) in the Conditional defines box.
You can also use FMX without quotes instead of $(FrameworkType) if the conditional define doesn't seem to work in that project.

CEF4Delphi demos

The CEF4Delphidemos directory has multiple directories with demos for Delphi and Lazarus :
  1. Delphi_FMX_Linux
    • FMXExternalPumpBrowser2Browser in OSR mode that uses an external message pump with a different executable for the subprocesses.
  2. Delphi_FMX_Mac
    • FMXExternalPumpBrowserBrowser in OSR mode that uses an external message pump with 4 app bundles for the subprocesses.
  3. Delphi_FMX_Windows
    • FMXExternalPumpBrowserBrowser in OSR mode that uses an external message pump.
    • FMXTabbedBrowserMultiple browsers in tabs in normal mode.
    • FMXTabbedOSRBrowserMultiple browsers in tabs in OSR mode.
    • FMXToolBoxBrowserBrowser in a child form in normal mode.
    • SimpleFMXBrowserSimple browser in normal mode.
  4. Delphi_VCL
    • ConsoleBrowserBrowser in OSR mode created in a DLL which is loaded from a console application.
    • ConsoleBrowser2Console application that creates an OSR browser in a thread and takes a screenshot.
    • CookieVisitorBrowser that uses TCefCookieManagerRef to read all the cookies.
    • CustomResourceBrowserA simple browser that shows customized resources and web pages instead of Internet websites.
    • DLLBrowserA web browser created from a DLL.
    • DOMVisitorA basic DOM visitor using the CEF classes. It includes node search and DOM iteration.
    • EditorBrowserHTML editor using TChromium and TCEFWindowParent.
    • Extensions
      • HelloWorldExtLoads a simple Hello World extension.
      • PageColorExtLoads the Set Page Color extension that allows you to change the page background color.
    • ExternalPumpBrowserBrowser made with the TChromium and TCEFWindowParent components using an external message pump.
    • FullScreenBrowserSimple full screen browser that uses TChromium and TCEFWindowParent. It uses the ESC key to exit.
    • jаvascript
      • CustomTitleBarBrowser using a JS extension that controls the Delphi form.
      • JSDialogDemo showing how to use cutom JS dialogs.
      • JSEvalThis demo evaluates jаvascript code using the V8Context.
      • JSExecutingFunctionsThis demo shows how to register and execute custom JS functions with native implementations.
      • JSExtensionDemo showing how to register a basic JS extension with a function and how to send information between processes.
      • JSExtensionWithFunctionDemo showing how to register a JS extension with a function that returns a value.
      • JSExtensionWithObjectParameterDemo showing how to register a JS extension with a function that has a parameter.
      • JSRTTIExtensionThis demo is similar to JSExtension but it uses RTTI to register the extension.
      • JSSimpleExtensionThis demo register a JS extension that sets a variable value.
      • JSSimpleWindowBindingDemo showing how to attach values to a frame's window object.
      • JSWindowBindingSubProcessThis demo is similar to JSSimpleWindowBinding but it uses a different executable for the subprocesses.
      • JSWindowBindingWithArrayBufferThis demo is similar to JSSimpleWindowBinding but it attaches a value with an array buffer.
      • JSWindowBindingWithFunctionDemo showing how to bind a function to the window object.
      • JSWindowBindingWithObjectThis demo is similar to JSSimpleWindowBinding but it attaches a value with an object.
    • KioskOSRBrowserFull screen Kiosk browser in OSR mode with a virtual keyboard that is shown automatically when the user clicks on an editable HTML element. The context menu also has an option to show/hide the keyboard. Press the ESC key to exit this demo.
    • MDIBrowserMultiple TChromium components in one MDI application.
    • MDIExternalPumpBrowserMultiple TChromium components in one MDI application using the external message pump configuration.
    • MediaRouterDemo showing how to use the media device discovery and messaging.
    • MiniBrowserA web browser using a TChromium and a TCEFWindowParent. It has custom context menus, basic web browser interface, developer tools, zoom, printing, proxy settings and some extra functions to copy the HTML and jаvascript printing.
    • OAuth2TesterUser authentication with OAuth 2.0 and REST API requests using TCEFServerComponent and TCEFUrlRequestClientComponent.
    • OSRExternalPumpBrowserBrowser in OSR mode using an external message pump.
    • PopupBrowserThis demo shows how to use custom forms with popup windows in OSR mode.
    • PopupBrowser2This demo shows how to use custom forms with popup windows in normal mode.
    • PostInspectorBrowserWeb browser with a POST data inspector.
    • ResponseFilterBrowserA browser made with the TChromium and TCEFWindowParent components using a custom response filter.
    • SchemeRegistrationBrowserURL scheme registration that shows customized web pages.
    • SimpleBrowserThe simplest web browser made with CEF4Delphi. It uses a TChromiumWindow component.
    • SimpleBrowser2The simplest web browser made with CEF4Delphi. It uses a combination of two components : TChromium and TCEFWindowParent.
    • SimpleExternalPumpBrowserBrowser made with the TChromiumWindow component using the external message pump configuration.
    • SimpleOSRBrowserA web browser using TChromium in OSR mode in case you need offscreen rendering.
    • SimpleServerHTTP and websockets server made with the TCEFServerComponent component for communication between applications in localhost.
    • SubProcessWeb browser that uses a different executable for the CEF subprocesses.
    • TabbedBrowserMultiple TChromium and TCEFWindowParent components in tab sheets.
    • TabbedBrowser2Multiple TChromium and TCEFWindowParent components inside a TFrame in tab sheets.
    • TinyBrowserA tiny web browser created with the Views Framework without VCL or FMX.
    • TinyBrowser2Extremely simple browser similar to the cefsimple demo in the CEF project.
    • ToolBoxBrowserMultiple TChromium components in one application using ToolBox forms.
    • ToolBoxBrowser2A simple browser in a child form created using the Views Framework.
    • ToolBoxSubProcessBrowserDemo similar to ToolBoxBrowser but using a different executable for the CEF subprocesses.
    • URLRequestDemo showing how to do URL requests with the TCEFUrlRequestClientComponent component.
    • WebpageSnapshotDesktop application that creates an OSR browser in a thread and takes a screenshot.
  5. Lazarus_any_OS
    • AppHelperHelper executable used by MacOS demos for the CEF subprocesses.
    • BrowserWindowWeb browser demo using a TBrowserWindow component.
    • BrowserWindowDomDemo similar to BrowserWindow but including a DOM visitor.
    • BrowserWindowExMultiple TBrowserWindow components in the same form.
    • BrowserWindowOsrDomWeb browser using a TOsrBrowserWindow component in OSR mode with a DOM visitor.
    • ExternalPumpBrowserDemo using a TChromium and TCEFLinkedWindowParent for any OS with the external message pump configuration.
  6. Lazarus_Linux
    • ExternalPumpBrowserBrowser made with the TChromium and TCEFLinkedWindowParent components using an external message pump.
    • MiniBrowserA web browser using a TChromium and a TCEFLinkedWindowParent in normal mode. It has custom context menus, basic web browser interface, developer tools, zoom, printing, etc.
    • OSRExternalPumpBrowserBrowser in OSR mode using an external message pump.
    • PopupBrowser2This demo shows how to use custom forms with popup windows in normal mode.
    • SimpleBrowserThe simplest web browser made with CEF4Delphi. It uses a TChromiumWindow component.
    • SimpleBrowser2The simplest web browser made with CEF4Delphi. It uses a combination of two components : TChromium and TCEFLinkedWindowParent.
    • SimpleOSRBrowserA web browser using TChromium in OSR mode in case you need offscreen rendering.
    • SubProcessWeb browser that uses a different executable for the CEF subprocesses.
    • TabbedBrowser2Multiple TChromium and TCEFLinkedWindowParent components inside a TFrame in tab sheets.
    • TinyBrowser2Extremely simple browser similar to the cefsimple demo in the CEF project.
  7. Lazarus_Mac
    • ExternalPumpBrowserBrowser made with the TChromium and TCEFLinkedWindowParent components using an external message pump.
  8. Lazarus_Windows
    • ConsoleBrowser2Console application that creates an OSR browser in a thread and takes a screenshot.
    • CookieVisitorBrowser that uses TCefCookieManagerRef to read all the cookies.
    • CustomResourceBrowserA simple browser that shows customized resources and web pages instead of Internet websites.
    • DOMVisitorA basic DOM visitor using the CEF classes. It includes node search and DOM iteration.
    • EditorBrowserHTML editor using TChromium and TCEFWindowParent.
    • ExternalPumpBrowserBrowser made with the TChromium and TCEFWindowParent components using an external message pump.
    • FullScreenBrowserSimple full screen browser that uses TChromium and TCEFWindowParent. It uses the ESC key to exit.
    • jаvascript
      • JSDialogDemo showing how to use cutom JS dialogs.
      • JSEvalThis demo evaluates jаvascript code using the V8Context.
      • JSExecutingFunctionsThis demo shows how to register and execute custom JS functions with native implementations.
      • JSExtensionDemo showing how to register a basic JS extension with a function and how to send information between processes.
      • JSExtensionWithFunctionDemo showing how to register a JS extension with a function that returns a value.
      • JSExtensionWithObjectParameterDemo showing how to register a JS extension with a function that has a parameter.
      • JSSimpleExtensionThis demo register a JS extension that sets a variable value.
      • JSSimpleWindowBindingDemo showing how to attach values to a frame's window object.
      • JSWindowBindingSubProcessThis demo is similar to JSSimpleWindowBinding but it uses a different executable for the subprocesses.
      • JSWindowBindingWithArrayBufferThis demo is similar to JSSimpleWindowBinding but it attaches a value with an array buffer.
      • JSWindowBindingWithFunctionDemo showing how to bind a function to the window object.
      • JSWindowBindingWithObjectThis demo is similar to JSSimpleWindowBinding but it attaches a value with an object.
    • MediaRouterDemo showing how to use the media device discovery and messaging.
    • MiniBrowserA web browser using a TChromium and a TCEFWindowParent. It has custom context menus, basic web browser interface, developer tools, zoom, printing, proxy settings and some extra functions to copy the HTML and jаvascript printing.
    • OAuth2TesterUser authentication with OAuth 2.0 and REST API requests using TCEFServerComponent and TCEFUrlRequestClientComponent.
    • OSRExternalPumpBrowserBrowser in OSR mode using an external message pump.
    • PopupBrowserThis demo shows how to use custom forms with popup windows in OSR mode.
    • PopupBrowser2This demo shows how to use custom forms with popup windows in normal mode.
    • PostInspectorBrowserWeb browser with a POST data inspector.
    • SchemeRegistrationBrowserURL scheme registration that shows customized web pages.
    • SimpleBrowserThe simplest web browser made with CEF4Delphi. It uses a TChromiumWindow component.
    • SimpleBrowser2The simplest web browser made with CEF4Delphi. It uses a combination of two components : TChromium and TCEFWindowParent.
    • SimpleExternalPumpBrowserBrowser made with the TChromiumWindow component using the external message pump configuration.
    • SimpleOSRBrowserA web browser using TChromium in OSR mode in case you need offscreen rendering.
    • SimpleServerHTTP and websockets server made with the TCEFServerComponent component for communication between applications in localhost.
    • SubProcessWeb browser that uses a different executable for the CEF subprocesses.
    • TabbedBrowserMultiple TChromium and TCEFWindowParent components in tab sheets.
    • TabbedBrowser2Multiple TChromium and TCEFWindowParent components inside a TFrame in tab sheets.
    • TinyBrowserA tiny web browser created with the Views Framework without LCL.
    • TinyBrowser2Extremely simple browser similar to the cefsimple demo in the CEF project.
    • ToolBoxBrowserMultiple TChromium components in one application using ToolBox forms.
    • ToolBoxBrowser2A simple browser in a child form created using the Views Framework.
    • URLRequestDemo showing how to do URL requests with the TCEFUrlRequestClientComponent component.
    • WebpageSnapshotDesktop application that creates an OSR browser in a thread and takes a screenshot.

Показать/скрыть дополнительное описание

Полная сборка установленная (Portable) Lazarus 2.2.4 + CEF4Delphi + CEF 90.5.4 Lazarus со встроенным (установленным) пакетом CEF4Delphi_Lazarus 90.5.4 Также установлен бинарный файл cef_binary_90.5.4+gc6a4331+chromium-90.0.4430.72_windows64 Теперь можно открывать демо-приложения находящиеся в сборке, можете создать браузер в Lazarus и так далее. Этот файл представляет собой полную сборку установленного (Portable) Lazarus 2.2.4, интегрированного с CEF4Delphi и Chromium Embedded Framework (CEF) версии 90.5.4. Сборка включает Lazarus с предварительно установленным пакетом CEF4Delphi_Lazarus 90.5.4, обеспечивая мгновенную готовность к разработке веб-ориентированных приложений прямо из Lazarus IDE.

Компоненты: Lazarus 2.2.4: Популярная среда разработки для языка программирования Pascal, обладающая обширным набором инструментов для разработки программного обеспечения. CEF4Delphi 90.5.4: Компонент Delphi для интеграции с Chromium Embedded Framework, позволяющий создавать браузерные приложения с использованием языка Pascal. CEF 90.5.4: Бинарный файл Chromium Embedded Framework версии 90.5.4, который обеспечивает мощный механизм встраивания браузера в приложения с помощью Lazarus. Функциональность: С этим файлом вы сможете открывать демонстрационные приложения, включенные в сборку, а также легко создавать собственные браузерные приложения, используя Lazarus.

Вы можете начать разработку прямо сейчас, не тратя времени на установку и настройку необходимых компонентов. Преимущества: Портативность: Файл обеспечивает портативность, что позволяет использовать Lazarus и CEF на различных компьютерах без необходимости повторной установки. Готовность к использованию: Все компоненты уже установлены и настроены для работы вместе, что существенно упрощает начало работы с разработкой веб-ориентированных приложений. Полная функциональность: Благодаря включению бинарного файла CEF, вы получаете доступ ко всем возможностям Chromium для создания высокопроизводительных и современных веб-приложений. MiniBrowser и так далее все приложения готовы Этот файл предоставляет все необходимое для эффективной разработки браузерных приложений с использованием Lazarus и CEF4Delphi.

Наслаждайтесь простотой и удобством разработки, начиная с этой полностью подготовленной сборки. CEF4Delphi-компоненты CEF4Delphi поставляется со многими компонентами и классами VCL, FMX и LCL для встраивания веб-браузера во все возможные параметры конфигурации CEF. TCEFПриложение Основным классом, используемым для упрощения инициализации и уничтожения CEF, является TCEFApplication, и в большинстве демонстрационных программ GlobalCEFApp создается как экземпляр TCEFApplication. Демонстрации SubProcess являются исключением из этого правила, чтобы избежать некоторых проблем с MS Office, и вместо этого они используют TCEFApplicationCore. TCEFApplication автоматически создает некоторые обработчики CEF , только если они необходимы.

Этими обработчиками являются CefApp, CefBrowserProcessHandler, CefRenderProcessHandler, CefResourceBundleHandler и CefLoadHandler. Прочтите это для получения дополнительной информации об этом классе. TChromium / TFMXChromium Это компонент, который объединяет все процедуры, функции, свойства и события браузера в одном месте. В нем есть все необходимое для создания, изменения и уничтожения веб-браузера. Приложения VCL и LCL используют TChromium, а приложения FireMonkey используют TFMXChromium. Оба компонента наследуют от TChromiumCore, который содержит большую часть кода, но для простоты вы увидите много ссылок на TChromium на форуме. TChromiumCore также создает множество обработчиков CEF , только если они необходимы, например CefClient, CefResourceRequestHandler и т.

д. Прочтите это для получения дополнительной информации об этом компоненте. TCEFWindowParent/TFMXWindowParent Компонент TCEFWindowParent используется в приложениях VCL и LCL вместе с компонентом TChromium для встраивания веб-браузера в обычном режиме. Как отмечалось ранее, браузеры в обычном режиме позволяют CEF создавать некоторые собственные дочерние элементы управления для отображения в них веб-содержимого. TCEFWindowParent наследует TCEFWinControl и используется в качестве родительского элемента этих дочерних элементов управления. TCEFWindowParent также автоматически контролирует размер этих дочерних элементов управления. Подробности смотрите в демо-версии SimpleBrowser2.

TFMXWindowParent — это компонент FireMonkey, имеющий ту же цель, что и TCEFWindowParent, но из-за структуры кода FMX он должен наследовать от TCommonCustomForm. TFMXWindowParent используется с компонентом TFMXChromium и должен быть создан во время выполнения. Дополнительную информацию см. в демо-версии SimpleFMXBrowser. TCEFLinkedWindowParent Этот компонент может использоваться приложениями VCL и LCL. Он имеет ту же цель, что и TCEFWindowParent, но имеет свойство Chromium , позволяющее напрямую связать его с компонентом TChromium. TCEFLinkedWindowParent изменяет размеры дочерних элементов управления, созданных CEF для браузеров в обычном режиме, и устанавливает фокус браузера с помощью связанного компонента TChromium.

TCEFWindowParent и TCEFLinkedWindowParent отлично работают в Windows, и вы можете использовать любой из них, но не можете использовать TCEFWindowParent в Linux или MacOS. TBufferPanel/TFMXBufferPanel TBufferPanel используется приложениями VCL и LCL с браузерами в режиме OSR для отображения содержимого браузера. TFMXBufferPanel имеет ту же цель, но используется в приложениях FireMonkey. Подробности смотрите в демо-версии SimpleOSRBrowser. TCEFWorkScheduler/TFMXWorkScheduler TCEFWorkScheduler используется приложениями VCL и LCL, использующими браузеры CEF с отключенным многопоточным циклом сообщений. TFMXWorkScheduler имеет ту же цель, но используется в приложениях FireMonkey.

Эти компоненты обрабатывают вызовы GlobalCEFApp.DoMessageLoopWork, используя параметр DelayMs в событии GlobalCEFApp.OnScheduleMessagePumpWork. Приложения VCL и LCL должны создать GlobalCEFWorkScheduler как экземпляр TCEFWorkScheduler перед созданием GlobalCEFApp. Приложения FMX должны создать GlobalFMXWorkScheduler как экземпляр TFMXWorkScheduler перед созданием GlobalCEFApp. Также необходимо уничтожить GlobalCEFApp перед уничтожением GlobalCEFWorkScheduler или GlobalFMXWorkScheduler. Все подробности реализации см. в демонстрациях ExternalPumpBrowser и FMXExternalPumpBrowser. TChromiumWindow TChromiumWindow был создан для встраивания чрезвычайно простых веб-браузеров немного более простым способом, чем использование пары TChromium и TCEFWindowParent.

TChromiumWindow можно использовать в приложениях VCL и LCL с браузерами в обычном режиме, но если вы используете много событий и процедур TChromium, вам следует рассмотреть возможность использования других компонентов. Подробности смотрите в демо-версии SimpleBrowser. TBrowserWindow / TOSRBrowserWindow TBrowserWindow — это компонент LCL, который упрощает создание мультиплатформенных приложений со встроенными веб-браузерами в обычном режиме. TOSRBrowserWindow имеет ту же цель, но использует браузеры в режиме OSR. Если вы используете один и тот же исходный код для создания приложения для Windows, Linux и MacOS с помощью Lazarus, рекомендуется использовать эти компоненты.

TBrowserWindow и TOSRBrowserWindow были созданы Martin_fr (он же User4martin ), одним из администраторов проекта Lazarus. Для получения более подробной информации посмотрите все демо-версии в каталоге Lazarus_any_OS. TCEFServerComponent TCEFServerComponent позволяет создать небольшой сервер HTTP и WebSocket в приложениях VCL, LCL и FMX. Его можно использовать для реализации межпроцессного взаимодействия (IPC) между приложением и локальным хостом. Более подробную информацию смотрите в демо-версии SimpleServer. TCEFURLRequestClientComponent TCEFUrlRequestClientComponent позволяет вам выполнять URL-запросы, не связанные с каким-либо браузером, из приложения VCL, LCL или FMX.

Дополнительную информацию см. в демо-версии URLRequest. ТЦЕФСентинел TCEFSentinel используется в качестве таймера, который проверяет количество запущенных процессов CEF, когда вы закрываете все браузеры перед выключением. Этот компонент используется только в крайнем случае, когда в CEF или CEF4Delphi возникает неразрешенная проблема с завершением работы, которая генерирует исключения при закрытии приложения. Платформа представлений Chromium Все компоненты на вкладке Chromium Views Framework позволяют использовать виджеты Views/Aura и менеджеры макетов в приложениях VCL и LCL. CEF использует эту структуру графического пользовательского интерфейса внутри Windows, Linux и MacOS для создания браузеров.

См. демонстрацию ToolBoxBrowser2 и прочтите этот документ для получения более подробной информации об этой платформе. Создание веб-браузера Когда GlobalCEFApp настроен со значениями по умолчанию, CEF включает многопоточный цикл сообщений и инициализируется в фоновом потоке после вызова GlobalCEFApp.StartMainProcess. Браузеры CEF можно создавать только после завершения инициализации CEF, и это может вызвать состояние гонки, если приложение пытается создать браузер при первом отображении основной формы приложения. В большинстве демонстраций используется простой TTimer для повтора вызова TChromium.CreateBrowser через несколько миллисекунд, но также можно использовать событие TCEFApplication.OnGlobalContextInitialized для отправки сообщения в главную форму и последующего создания браузеров.

Приложения Lazarus решают эту проблему автоматически, если вы используете TBrowserWindow или TOSRBrowserWindow. Завершение работы приложения Chromium требует, чтобы все браузеры в вашем приложении были корректно закрыты перед уничтожением GlobalCEFApp, что является последним шагом в файле проекта. Браузеры CEF должны выполнить следующие шаги, чтобы правильно их закрыть: Вызовите TChromium.CloseBrowser. Дождитесь события TChromium.OnClose. Дождитесь события TChromium.OnBeforeClose. Каждая демонстрация имеет более подробную последовательность уничтожения в коммент....

Характеристики учебной работы

Учебное заведение
Просмотров
3
Покупок
0
Размер
528,13 Mb

Список файлов

    Картинка-подпись
    Ваше экономие времени является моей ГЛАВНОЙ задачей! Если я Вам хоть чуть-чуть помог, пожалуйста, сделайте и мне приятное, оставьте 5 ЗВЁЗД и позитивный комментарий. Большое спасибо!

    Комментарии

    Поделитесь ссылкой:
    Цена: 399 руб.
    Расширенная гарантия +3 недели гарантии, +10% цены
    Рейтинг-
    0
    0
    0
    0
    0
    Поделитесь ссылкой:
    Сопутствующие материалы
    Свежие статьи
    Популярно сейчас
    А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
    Ответы на популярные вопросы
    Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
    Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
    Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
    Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
    Отзывы студентов
    Ставлю 10/10
    Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
    Лучшая платформа для успешной сдачи сессии
    Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
    Студизба ван лав ❤
    Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
    Отличный сайт
    Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
    Маленький отзыв о большом помощнике!
    Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
    Студ. Изба как крупнейший сборник работ для студентов
    Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
    Спасательный островок
    Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
    Всё и так отлично
    Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
    Отзыв о системе "Студизба"
    Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
    Отличный помощник
    Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
    Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
    Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
    Спасибо за шикарный сайт
    Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
    Популярные преподаватели
    Добавляйте материалы
    и зарабатывайте!
    Продажи идут автоматически
    5137
    Авторов
    на СтудИзбе
    440
    Средний доход
    с одного платного файла
    Обучение Подробнее