Delphi 11 安装 EhLib 10.0.031 完整指南:包路径、编译顺序与避坑

发布时间:2026/10/31 13:16:45
Delphi 11 安装 EhLib 10.0.031 完整指南:包路径、编译顺序与避坑 简介EhLib 10.0.031 是面向 Delphi 11 开发者的第三方组件库安装包主打图形处理、数据库访问、报表设计与数据可视化等能力适合需要快速搭建桌面业务系统或为现有项目补充表格、图表控件的中高级 Delphi 程序员。压缩包共 890 个文件约 24.63MB以 302 个 dfm 窗体、299 个 pas 源码、70 个 res 资源、55 个 dpr 工程及 30 个 dcu 编译单元为主体另含 dpk 安装包、doc/docx 手册、chm 帮助文档与示例数据库源码完整可读可改。资源已在 Delphi 11.1.5 环境验证可正常安装install 目录提供安装程序便于无缝集成。已有 886 人学习下载读者可据此理解组件实现原理、按项目需要裁剪扩展并借助附带手册与示例快速上手图形、数据库、报表与图表等模块。1. 装 EhLib 10.0.031 前先把 Delphi 11 的包路径理清Delphi 11 装第三方控件库翻车点往往不在控件本身而在包路径和编译顺序。EhLib 10.0.031 这套源码包很多人拿到手第一反应是双击.dpk一路 Next结果 IDE 里控件面板出来了一编译项目就报找不到EhLibVCL单元或者运行时弹Class not registered。这活儿在 Delphi 圈子里太常见了几乎每个换大版本的团队都要重走一遍。这篇记录按我实际装机的顺序写先确认 Delphi 11 的编译环境再拆包、编运行时包、装设计期包最后落到「怎么验证真跑通」。适合刚把项目迁到 Delphi 11、需要重新挂 EhLib 的开发者也适合想搞清楚包依赖关系的老手。2. 环境准备Delphi 11 的编译链和 EhLib 源码目录怎么摆2.1 确认 Delphi 11 的版本号和目标平台EhLib 10.0.031 对 Delphi 11 的支持是分平台的VCL 和 FMX 两套源码在同一个包里但编译出来的包名不一样。装之前先在 IDE 里点Help → About确认版本号是 11.0 还是 11.3补丁级别会影响Win32和Win64的 DCU 输出目录。我一般会先建一个干净的目录比如D:\Components\EhLib_10.0.031把源码包解压进去不要放在中文路径或带空格的路径下Delphi 的Library Path对空格的处理在 11 上偶尔会抽风。目录结构大致是这样解压后先别急着动EhLib_10.0.031/ ├── Source/ # 运行时源码.pas 文件都在这里 ├── Packages/ # 设计期和运行期的 .dpk 工程 │ ├── Delphi11/ │ └── ... ├── Demos/ # 示例工程验证时用得上 └── Help/ # 帮助文档Packages\Delphi11下面通常有EhLibVCL.dpk运行期和EhLibVCLD.dpk设计期FMX 对应的是EhLibFMX系列。先看清楚哪个是 Runtime、哪个是 Design装反了就是控件面板能拖但编译报错。2.2 设置 Library Path 和 Browsing Path这一步是后面所有编译的基础。打开Tools → Options → Language → Delphi → Library在Library Path里加上源码目录和 DCU 输出目录。我一般会单独建一个D:\Components\EhLib_10.0.031\Lib\Delphi11\Win32\Release作为输出避免和 IDE 自带的 DCU 混在一起。# Library Path 追加Win32 Release 为例 D:\Components\EhLib_10.0.031\Source D:\Components\EhLib_10.0.031\Lib\Delphi11\Win32\ReleaseBrowsing Path也加上Source目录这样 Ctrl点击 能跳到源码。注意Library Path的顺序有讲究EhLib 的路径要放在系统路径之前否则可能命中旧版本残留的EhLibVCL.dcu。装过旧版 EhLib 的机器先去C:\Users\Public\Documents\Embarcadero\Studio\22.0\Dcp和Bpl目录下把旧的EhLib*.bpl、EhLib*.dcp清掉这是血泪经验不清的话新包编译时链接到旧 DCP运行时行为对不上。2.3 检查目标平台和编译配置Delphi 11 默认工程可能同时有 Win32 和 Win64 两个平台。EhLib 10.0.031 的源码对两个平台都支持但设计期包只需要装 Win32 一份就够IDE 是 32 位的。编译前在Project → Options → Delphi Compiler里确认Target选的是Win32Release配置下Optimization打开、Debug information关掉这样编出来的 BPL 体积小、加载快。提示如果团队里有人还在用 Delphi 10.4 或 12别共用同一个 EhLib 输出目录DCU 格式不兼容混用会报Unit version mismatch。3. 编译与安装从运行时包到设计期控件的完整顺序3.1 先编运行时包 EhLibVCL.dpk打开Packages\Delphi11\EhLibVCL.dpk在 IDE 里直接Build。这一步只编运行期单元不注册控件。编译前确认Project → Options → Description里的LIB suffix是空的或者和你的命名规范一致我一般留空避免 BPL 名字带后缀导致设计期包找不到。// EhLibVCL.dpk 里 requires 子句大致是这样确认 rtl、vcl 都在 requires rtl, vcl, vclx;requires里列的是它依赖的 IDE 自带包Delphi 11 上vclx有时需要手动确认存在缺了会在链接阶段报Required package vclx not found。编译成功后输出目录里会出现EhLibVCL.bpl和对应的.dcp。把这两个文件的路径记下来下一步设计期包要靠它。3.2 再编设计期包 EhLibVCLD.dpk设计期包依赖刚才编出来的运行期包。打开EhLibVCLD.dpk它的requires里应该有EhLibVCL如果没有就手动加上路径指向刚才的输出目录。requires rtl, vcl, vclx, EhLibVCL; // 指向运行期包路径由 Library Path 决定Build通过后右键工程选InstallIDE 会把设计期包注册进控件面板。装完在 Tool Palette 里应该能看到EhLib分类下面有TDBGridEh、TDBEditEh这些。如果Install报Cannot load package八成是运行期包的 BPL 没在系统PATH里或者位数不对32 位 IDE 加载了 64 位 BPL。3.3 注册控件和检查设计期依赖Install成功后IDE 会弹一个对话框列出注册的组件类。这时候别急着关去Component → Install Packages里确认EhLib 10.0.031 Design Package处于勾选状态Description里能看到版本号。有些机器上装完控件面板不刷新重启 IDE 就好这是 IDE 的缓存问题不是装失败。设计期包还依赖designideDelphi 11 的designide.dcp在C:\Program Files (x86)\Embarcadero\Studio\22.0\lib\win32\release下如果编译报找不到DesignIntf检查这个路径有没有在Library Path里。我一般会把$(BDSLIB)\$(Platform)\release这种宏路径保留别手动写死绝对路径换机器就废。3.4 把 BPL 路径加进系统环境变量这一步决定运行时能不能找到包。把运行期 BPL 的输出目录加到系统PATH或者更稳妥的做法是在项目里用LoadPackage动态加载。我一般选前者因为团队里多个项目共用一套控件统一放PATH省事。# Windows 下临时验证用正式部署写进系统环境变量 set PATHD:\Components\EhLib_10.0.031\Lib\Delphi11\Win32\Release;%PATH%加完PATH后新开一个命令行窗口验证where EhLibVCL.bpl能定位到再启动 IDE 或编译后的 exe。注意PATH里不要同时存在多个版本的 EhLib BPLWindows 加载 DLL/BPL 是按PATH顺序找第一个旧版本在前就会加载错。4. 避坑与排查EhLib 装完最常见的五类翻车4.1 控件面板有但编译报找不到单元现象Tool Palette 里能看到TDBGridEh拖到窗体上设计期正常一编译就报F1026 File not found: EhLibVCL.pas或E2003 Undeclared identifier: TDBGridEh。原因Library Path只加了设计期包的路径没加Source源码目录或者加的顺序在系统路径之后被旧 DCU 覆盖。解决回到Tools → Options → Library Path把Source目录提到最前面然后Project → Build All强制重编。还不行就删掉项目目录下的__history和Win32\Debug输出Delphi 的增量编译有时会缓存错误的单元引用。4.2 Install 时报 Cannot load package现象设计期包Install时弹Cannot load package EhLibVCLD. It contains unit EhLibVCL, which is also contained in package EhLibVCL。原因运行期包被重复加载或者 BPL 的LIB suffix和设计期包requires里写的不一致。解决去Component → Install Packages里先把所有 EhLib 相关的包取消勾选关 IDE清掉Dcp和Bpl目录下的旧文件重新按「先运行期、后设计期」的顺序编一遍。LIB suffix统一留空。4.3 运行时弹 Class not registered现象编译通过的 exe 在别的机器上跑一打开带TDBGridEh的窗体就报Class not registered。原因目标机器没装 EhLib 的 BPL或者 BPL 位数和 exe 不匹配32 位 exe 配了 64 位 BPL。解决部署时把EhLibVCL.bpl一起拷过去放 exe 同目录或系统PATH。更干净的做法是改用静态链接在项目里把 EhLib 源码单元直接编进 exe不依赖 BPL代价是 exe 体积大一点但部署省心。4.4 设计期控件属性面板空白现象拖上TDBGridEh后Object Inspector 里属性列表是空的或者只有少数几个。原因设计期包注册了组件但没注册属性编辑器通常是EhLibVCLD.dpk编译时漏了DesignEditors相关的单元。解决确认EhLibVCLD.dpk的contains里有EhLibReg.pas这类注册单元重新Build后Install。还不行就检查designide的路径属性编辑器依赖它。4.5 升级后旧项目报 Unit version mismatch现象从旧版 EhLib 升到 10.0.031旧项目一编译就报Unit EhLibVCL was compiled with a different version of System.Classes。原因项目目录里残留了旧版编译出的.dcu或者Library Path里旧版路径还在。解决全盘搜EhLibVCL.dcu把非当前版本的删掉Library Path里只保留 10.0.031 的路径项目Build All一次。我一般会在升级前把整个Lib输出目录清空重编省得逐个排查。5. 装完怎么验证用 Demo 工程跑一遍才算数装完控件面板出来不算完得用一个真实工程验证编译期和运行期都通。EhLib 包里自带Demos目录挑一个 VCL 的DBGridEh示例最直接。打开Demos\VCL\Grids\...下的工程先Build All再Run看三件事窗体上的TDBGridEh能不能正常渲染、列头排序和过滤能不能点、关闭时有没有包卸载报错。// 验证运行时包是否真加载可以在窗体 OnCreate 里临时加一句 procedure TForm1.FormCreate(Sender: TObject); begin // 输出当前加载的 EhLib 版本确认不是旧版残留 OutputDebugString(PChar(EhLib version: EhLibVersion)); end;EhLibVersion是源码里定义的常量编译期就能确认版本号对不对。运行后在DebugView里看到10.0.031才算真装对了。如果输出的是旧版本号说明PATH或Library Path里还有旧包回去清。再补一个部署验证把编译好的 exe 拷到一台没装 Delphi 的干净机器上只带EhLibVCL.bpl和必要的运行时库双击跑一遍。这一步能暴露PATH依赖和位数问题比在开发机上反复编译有用得多。我一般会做一个deploy_check.bat把 BPL 拷贝、PATH设置、启动 exe 串起来每次发版前跑一遍。验证项方法通过标准编译期单元解析Build All Demo 工程无 F1026/E2003设计期注册Tool Palette 拖控件属性面板完整运行期包加载DebugView 看版本输出显示 10.0.031干净机部署拷贝 exe BPL 到无 IDE 机器窗体正常、无 Class not registered从那以后我每次装第三方控件库都强制走一遍「干净机部署验证」开发机上编过不算数换台机器跑起来才算落地。这套 EhLib 10.0.031 的装法在 Delphi 11 上验证过 Win32 和 Win64 两个目标按上面的顺序走基本不会卡在包依赖上。希望帮到你。本文还有配套的精品资源点击获取

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询