Delphi使用CEF4Delphi制作Chromium谷歌内核浏览器


本文整理自网络,侵删。

 什么是CEF4Delphi?
CEF4Delphi是由Salvador Díaz Fau创建的一个开源项目,用于在基于Delphi或Lazarus/FPC的应用程序中嵌入基于谷歌内核(Chromium-based)的浏览器。

Github地址
 https://github.com/salvadordf/CEF4Delphi

控件下载

在最新版本的Delphi中构建和安装CEF4delphi
1、下载CEF4Delphi的最新版本。
2、将CEF4Delphi解压到一个目录中,并确保您的用户在该目录中拥有写入权限。
3、运行Delphi。
4、把CEF4Delphi的source目录添加到Delphi的开发环境中去,
在开发环境导航栏中点击Tools->Options-> Environment Options->Delphi Options->Library,

选择一个正确的平台(32或64),把目录添加到Library path中。

5、如果您只想要VCL组件,请从Delphi打开文件CEF4Delphi.dproj文件。如果您想要VCL和FireMonkey (FMX)组件,请打开CEF4Delphi_FMX.dproj。
6、在项目管理器Project manager中右键CEF4Delphi.bpl,点击 Build 选项。
7、在项目管理器Project manager中右键CEF4Delphi.bpl,点击 Install 选项。

在Delphi7中构建和安装CEF4delphi

1、下载CEF4Delphi的最新版本。

2、将CEF4Delphi解压到一个目录中,并确保您的用户在该目录中拥有写入权限。

3、运行Delphi。

4、把CEF4Delphi的source目录添加到Delphi的开发环境中去,

在开发环境导航栏中点击Tools->Options-> Environment Options->Delphi Options->Library,

选择一个正确的平台(32或64),把目录添加到Library path中。

5、在Delphi中打开CEF4Delphi_D7.dpk文件。

6、点击 Compile 编译按钮。

7、点击 Install 安装按钮。

在Lazarus中构建和安装CEF4delphi

1、下载CEF4Delphi的最新版本。

2、将CEF4Delphi解压到一个目录中,并确保您的用户在该目录中拥有写入权限。

3、运行Lazarus。

4、在Package->Open Package File (*.lpk)菜单中打开cef4delphi_lazarus.lpk文件

5、在 package窗口点击 Compile 编译按钮

6、点击 Use 按钮,选择 Install 选项。

支持的操作系统版本

Google宣布,他们在2015放弃Windows XP支持Chrome。与WindowsXP兼容的最后一个CEF3分支是2623,发布于2016。

 

由于CEF4Delphi使用了最新的CEF3分支,它与WindowsXP、WindowsVista、Windows Server 2003和Windows Server 2008不兼容。

 

CEF4Delphi需要Windows 7, 8,8.1,10或更高的操作系统。

 

如果您需要支持应用程序中的Windows XP和Vista,请使用OLDCEF4Delphi。

 

用法

在首次使用CEF4Delphi之前,强烈建议阅读关于CEF3和 Chromium设计文档的所有信息。

 

CEF3使用多个进程,并且运行相同的可执行文件或不同的进程来创建它们。这就是为什么在TApplication运行之前需要对CEF3进行初始化的原因。

 

CEF4Delphi使用TCEFApplication类中的GlobalCEFApp简化了所有CEF3 初始化。

 

由于TApplication必须只在主进程中初始化和运行,所以有必要创建GlobalCEFApp并调用GlobalCEFApp.StartMainProcess来检测这是否是主进程。

 

Delphi应用程序在.Dpr文件中使用此代码:

 

program Project1;

 

uses

  Vcl.Forms,

  Unit1 in 'Unit1.pas' {Form1};

 

{$R *.res}

 

begin

  Application.Initialize;

  Application.MainFormOnTaskbar := True;

  Application.CreateForm(TForm1, Form1);

  Application.Run;

end.

 

program Project1;

 

uses

  Vcl.Forms,

  Unit1 in 'Unit1.pas' {Form1};

 

{$R *.res}

 

begin

  Application.Initialize;

  Application.MainFormOnTaskbar := True;

  Application.CreateForm(TForm1, Form1);

  Application.Run;

end.

要包含CEF4Delphi,您只需将uCEFApplication 和WinApi.Windows添加到USER子句,创建GlobalCEFApp全局变量,调用GlobalCEFApp.StartMainProcess函数和GlobalCEFApp在最后一步中。您还必须添加SetPEFlags指令。

 

program Project1;

 

uses

  Vcl.Forms,

  WinApi.Windows,

  uCEFApplication,

  Unit1 in 'Unit1.pas' {Form1};

 

{$R *.res}

 

{$SetPEFlags IMAGE_FILE_LARGE_ADDRESS_AWARE}

 

begin

  GlobalCEFApp := TCefApplication.Create;

 

  if GlobalCEFApp.StartMainProcess then

    begin

      Application.Initialize;

      Application.MainFormOnTaskbar := True;

      Application.CreateForm(TForm1, Form1);

      Application.Run;

    end;

 

  GlobalCEFApp.Free;

end.

 

program Project1;

 

uses

  Vcl.Forms,

  WinApi.Windows,

  uCEFApplication,

  Unit1 in 'Unit1.pas' {Form1};

 

{$R *.res}

 

{$SetPEFlags IMAGE_FILE_LARGE_ADDRESS_AWARE}

 

begin

  GlobalCEFApp := TCefApplication.Create;

 

  if GlobalCEFApp.StartMainProcess then

    begin

      Application.Initialize;

      Application.MainFormOnTaskbar := True;

      Application.CreateForm(TForm1, Form1);

      Application.Run;

    end;

 

  GlobalCEFApp.Free;

end.

GlobalCEFApp创建必须在.Dpr文件中,并且对GlobalCEFApp.StartMainProcess 的调用必须在if..then子句中。

 

Demo

以自带Demo为例,打开CEF4Delphi-master->demos->SimpleBrowser,以此为例。双击SimpleBrowser.dpr,编译运行后会显示缺少或多东西,如下图所示。

 

原因是缺少Chromium框架,需要先下载框架:https://github.com/salvadordf/CEF4Delphi

注意:请正确下载相应版本。如果当前应用为32位,下载32位框架;如果当前应用为64位,下载64位框架。并且请只在这里下载,保证控件和框架版本相对应,否则会提示不支持的版本!

 CEF binaries used by CEF4Delphi :

  • 32 bit
  • 64 bit

将下载好的文件解压缩,将../Resources文件夹中的内容全部复制到../Release文件夹中,保证为如下图所示布局:

将这里编译好的SimpleBrowser.exe文件复制到Chromium框架的../Release文件夹中,双击运行

 

来源:https://www.amingstudio.com/delphi/403.html

相关阅读 >>

Delphi里参数修饰符const、var、out的作用分别是什么?

Delphi在richedit控件中插入gif动画表情

Delphi 获取超gb大文件大小

Delphi vclzip压缩文件夹

cnpack sqlite tool 2.04

Delphi开启和关闭windows xp 防火墙

Delphi antiemupeb

Delphi 如何通过进程句柄判断该进程是否已退出?

Delphi winapi: flashwindow - 闪烁窗口

Delphi使用xmlhttp组件代码

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...