使用 Delphi + WebView4Delphi 初步使用完整指南

WebView4Delphi 可以做什么

WebView4Delphi 是 Delphi/ C++Builder 的浏览器控件封装,基于 Microsoft Edge WebView2。简单来说,它可以在 Delphi 桌面程序里嵌入完整的 Chromium 内核浏览器,支持最新的网页标准和功能。
WebView4Delphi 不仅是一个“浏览器控件”,更是 Delphi 桌面应用与现代 Web 技术的桥梁。
你可以把它当作:内嵌网页的 UI 窗口/桌面自动化工具/脚本和插件平台
它能做的事情几乎只受你的 Delphi 与 JS 技能限制。

一.下载与安装 WebView4Delphi

从 GitHub 官方仓库下载 WebView4Delphi:
访问 https://github.com/salvadordf/WebView4Delphi,选择 Code → Download ZIP 下载压缩包,或通过 Git 命令克隆仓库:
git clone https://github.com/salvadordf/WebView4Delphi.git

在这里插入图片描述

二.安装 Edge WebView2 Runtime

依赖:从 Microsoft 官方下载 Evergreen 版本:
https://developer.microsoft.com/en-us/microsoft-edge/webview2/#download-section
详细的安装方法
安装完成后需重启系统。

三.安装 WebView4Delphi

1.下载好的WebView4Delphi-main.zip压缩文件进行解压
2.用delphi13打开在目录下的 .\packages\WebView4Delphi.dpk
3.右上的projects窗口右击WebView4Delphi.bpl然后点Build(或 Compile)

在这里插入图片描述

4.如果提示在这里WebView4DelphiVCL_register.pas出错 就注释掉出错的代码这些是LOGO没有关系的

uses {$IFDEF DELPHI16_UP} System.Classes, Winapi.Windows, System.SysUtils, //{$IFDEF ADDSPLASHSCREENLOGO}ToolsApi,{$ENDIF} {$ELSE} Classes, Windows, SysUtils, {$ENDIF} uWVBrowser, uWVWindowParent; {$IFDEF DELPHI16_UP}{$IFDEF ADDSPLASHSCREENLOGO} procedure AddBitmapToSplashScreen; const {$I ..\source\uWVVersion.inc} var TempBitmap : HBITMAP; TempVersion : string; begin // 添加 IDE 启动画面 Logo(可删除) // if assigned(SplashScreenServices) then // begin // TempBitmap := LoadBitmap(FindResourceHInstance(HInstance), 'WebView2'); // try // TempVersion := IntToStr(WEBVIEW2LOADERLIB_VERSION_MAJOR) + '.' + // IntToStr(WEBVIEW2LOADERLIB_VERSION_MINOR) + '.' + // IntToStr(WEBVIEW2LOADERLIB_VERSION_RELEASE) + '.' + // IntToStr(WEBVIEW2LOADERLIB_VERSION_BUILD); // // SplashScreenServices.AddPluginBitmap('WebView4Delphi ' + TempVersion, TempBitmap, False, 'MIT license'); // finally // DeleteObject(TempBitmap); // end; // end; end; {$ENDIF}{$ENDIF} 

5.编译成功会显示再次右键WebView4Delphi.bpl这个包点击 Install
安装成功后,在Palette组件栏将显示 TWVBrowser 控件。

在这里插入图片描述

6.把路径添加到库
菜单 Tools → Options → Language → Delphi → Library Path
WebView4Delphi目录下.\packages.\source 加进去

在这里插入图片描述

五 . 初始使用复制 WebView2Loader.dll

非常关键的一步!!! 因为如果不复制这文件,程序会启动会出错。
在下载的WebView4Delphi目录下找到bin32文件夹或bin64文件夹:
如果你的开发程序是32位 那么就复制 .\bin32\WebView2Loader.dll
如果你的开发程序是64位 那么就复制 .\bin64\WebView2Loader.dll
复制到你的项目根目录(与 EXE 文件同一层)。

在这里插入图片描述


WebView2Loader.dll 历史版本
https://www.nuget.org/stats/packages/Microsoft.Web.WebView2?groupby=Version

常见问题解决

组件未显示问题:
确认 .bpl 文件已正确安装,检查 Delphi 是否重启。验证 Edge WebView2 Runtime 是否安装成功。

初始化错误(InitializationError):
确保程序以管理员权限运行,检查系统环境变量是否包含 WebView2 路径。可通过代码检测错误:

if GlobalWebView2Loader.InitializationError then ShowMessage(GlobalWebView2Loader.ErrorMessage); 

初始使用

确认 CreateBrowser 方法在 FormShow 事件中调用,避免在 FormCreate 中初始化。
逻辑控件WVBrowser
时间控件Timer
网页显示控件 WVWindowParent1 把它放在窗体上属性Browser:=WVBrowser1;

基础使用示例

以下代码演示加载网页的基本流程:

unit Unit1; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,Vcl.Controls, Vcl.Forms, Vcl.Dialogs,Vcl.StdCtrls,Vcl.ExtCtrls,Vcl.ComCtrls, Winapi.WebView2, Winapi.ActiveX, uWVBrowserBase, uWVBrowser,uWVWinControl, uWVWindowParent, uWVLoader,uWVCoreWebView2Args, uWVTypes,uWVTypeLibrary; type TForm1 = class(TForm) ButtonLoad: TButton; Timer1: TTimer; WVBrowser1: TWVBrowser; WVWindowParent1: TWVWindowParent; procedure ButtonLoadClick(Sender: TObject); procedure WVBrowser1AfterCreated(Sender: TObject); procedure FormShow(Sender: TObject); procedure Timer1Timer(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} // 窗体显示时触发 procedure TForm1.FormShow(Sender: TObject); begin Timer1.Enabled:=False; WVWindowParent1.Browser:=WVBrowser1; // 检查 WebView2 加载器初始化是否出错 if GlobalWebView2Loader.InitializationError then ShowMessage(GlobalWebView2Loader.ErrorMessage) // 显示错误信息 else // 如果 WebView2 已经初始化成功 if GlobalWebView2Loader.Initialized then // 创建浏览器控件,并指定父窗口句柄 WVBrowser1.CreateBrowser(WVWindowParent1.Handle) else // 如果还未初始化完成,则启用定时器等待 Timer1.Enabled := True; end; // 当点击按钮时,加载指定网页 procedure TForm1.ButtonLoadClick(Sender: TObject); begin // 使用 TWVBrowser 的 Navigate 方法打开网页 WVBrowser1.Navigate('https://www.baidu.com'); end; // 当 WVBrowser 控件完成创建后触发 procedure TForm1.WVBrowser1AfterCreated(Sender: TObject); begin // 更新浏览器窗口大小,确保浏览器控件填充父窗口 WVWindowParent1.UpdateSize; end; // 定时器事件,用于轮询 WebView2 初始化状态 procedure TForm1.Timer1Timer(Sender: TObject); begin // 先关闭定时器,避免重复触发 Timer1.Enabled := False; // 如果 WebView2 已初始化成功 if GlobalWebView2Loader.Initialized then // 创建浏览器控件,并指定父窗口句柄 WVBrowser1.CreateBrowser(WVWindowParent1.Handle) else // 如果仍未初始化,则再次启用定时器继续等待 Timer1.Enabled := True; end; procedure TForm1.Btn_FindInputClick(Sender: TObject); var script: wvstring; begin // JS 脚本:遍历所有 input,找到 value="文本框3" 的元素,返回 outerHTML script := 'var inputs = document.getElementsByTagName("input");' + 'var;' + 'for (var i=0; i<inputs.length; i++) {' + ' if (inputs[i].value === "文本框3") {' + ' inputs[i].value="新文本111";' + ' result = inputs[i].outerHTML;' + ' break;' + ' }' + '}' + 'result;'; // 执行 JS WVBrowser1.ExecuteScript(script); end; procedure TForm1.Btn_GetIdClick(Sender: TObject); var script: wvstring; begin // 获取指定 ID 的元素内容 script := 'document.getElementById("pagination").innerText = "新的内容 from Delphi";'; // Delphi 13 + WebView4Delphi 旧版本使用 Retrieve HTML 方式获取结果 WVBrowser1.ExecuteScript(script); end; // 程序初始化部分,全局 WebView2 加载器配置 initialization // 创建全局 WebView2 加载器对象 GlobalWebView2Loader := TWVLoader.Create(nil); // 设置 WebView2 用户数据缓存路径,防止使用默认路径 GlobalWebView2Loader.UserDataFolder := ExtractFileDir(Application.ExeName) + '\CustomCache'; // 启动 WebView2 初始化流程 GlobalWebView2Loader.StartWebView2; 

关键点:

  • 使用 GlobalWebView2Loader 检查运行时状态。
  • Navigate 方法传入目标 URL 字符串。
  • 避免在窗体未显示时调用 CreateBrowser

Read more

“神经网络的奥秘”一篇带你读懂AI学习核心

“神经网络的奥秘”一篇带你读懂AI学习核心

引言:“神经网络的奥秘”一篇带你读懂AI学习核心 想学AI却卡在神经网络?这篇带你轻松突破核心难点! 如今打开手机,AI修图、智能推荐、语音助手随时待命;刷到科技新闻,自动驾驶、AI制药、大模型对话的进展不断刷新认知。而这一切AI能力的核心,都离不开一个关键技术——神经网络。 很多人把神经网络当成“高深黑箱”,觉得必须有深厚的数学功底才能理解。但其实,神经网络的核心逻辑和人类大脑的学习方式很相似,哪怕是非科班出身,也能通过通俗的解释搞懂它的运作原理。这篇文章就从“是什么、怎么学、用在哪”三个维度,带你彻底读懂神经网络,真正入门AI学习的核心。 * 引言:“神经网络的奥秘”一篇带你读懂AI学习核心 * 一、先搞懂基础:神经网络到底是什么? * 二、核心奥秘:神经网络是如何“学习”的? * 三、必懂概念:新手入门神经网络的5个关键术语 * 四、实际应用:神经网络在我们身边的5个场景 * 五、新手学习路径:从入门到实战的3个阶段

保姆级教程:Windows本地部署Ollama+OpenClaw,打造你的AI赚钱系统(APP开发/量化/小说/剪辑)

摘要:想用AI搞钱但卡在技术门槛?本文手把手教你用一台Windows电脑,零成本本地部署Ollama大模型+OpenClaw智能中枢,赋予AI开发APP、量化分析、编写小说、剪辑辅助等“赚钱技能”。全程无需编程基础,跟着鼠标点、照着命令敲,即可拥有24小时待命的AI员工。 一、写在前面 很多朋友对AI变现跃跃欲试,却常被这些问题劝退: * 云端部署太贵,API调用怕浪费钱 * 技术文档看不懂,不知道从哪下手 * 数据隐私担忧,不敢把敏感资料上传 其实,你手头那台Windows电脑完全能胜任!本文将带你搭建一套完全本地化、免费、可扩展的AI生产力系统,让AI帮你写代码、分析表格、生成文案、处理视频,真正把AI变成你的“赚钱工具”。 系统架构: * 本地大脑:Ollama + DeepSeek模型,负责理解任务、生成内容 * 智能中枢:OpenClaw(原名OpenClaude),负责调用各类工具(Skill) * 赚钱技能:通过安装Skill包,让AI具备特定领域的实操能力 适用人群:

3D效果:HTML5 WebGL结合AI实现智能3D场景渲染

3D效果:HTML5 WebGL结合AI实现智能3D场景渲染 📝 本章学习目标:本章聚焦高级主题,帮助读者掌握工程化开发能力。通过本章学习,你将全面掌握"3D效果:HTML5 WebGL结合AI实现智能3D场景渲染"这一核心主题。 一、引言:为什么这个话题如此重要 在前端技术快速发展的今天,3D效果:HTML5 WebGL结合AI实现智能3D场景渲染已经成为每个前端开发者必须掌握的核心技能。HTML5作为现代Web开发的基石,与AI技术的深度融合正在重新定义前端开发的边界和可能性。 1.1 背景与意义 💡 核心认知:HTML5与AI的结合,让前端开发从"静态展示"进化为"智能交互"。这种变革不仅提升了用户体验,更开辟了前端开发的新范式。 从2020年TensorFlow.js的成熟,到如今AI辅助开发工具的普及,前端开发正在经历一场智能化革命。据统计,超过70%的前端项目已经开始尝试集成AI能力,AI辅助前端开发工具的市场规模已突破十亿美元。 1.2 本章结构概览 为了帮助读者系统性地掌握本章内容,

【企业级】RuoYi-Vue-Plus AI 智能开发助手 | Claude Code + Codex 双引擎 | 40+ 专业技能包 | 10 大快捷命令 | 开箱即用

【企业级】RuoYi-Vue-Plus AI 智能开发助手 | Claude Code + Codex 双引擎 | 40+ 专业技能包 | 10 大快捷命令 | 开箱即用

RuoYi-Vue-Plus AI 智能编程助手 商品简介 基于 RuoYi-Vue-Plus 5.X 企业级后端框架,深度定制的 AI 智能编程助手配置包。支持 Claude Code 和 OpenAI Codex 双 AI 引擎,内置 40+ 专业开发技能、10 大快捷命令、智能钩子系统,让 AI 真正理解您的项目架构和开发规范,实现 10 倍开发效率提升。 核心亮点 🚀 双 AI 引擎支持 引擎配置目录说明Claude Code.claude/Anthropic Claude 官方 CLI 工具配置OpenAI Codex.codex/OpenAI Codex CLI