资讯动态

DevExpress VCL 20.2.6在Delphi 11的安装与避坑

发布时间:2026/10/8 21:12:00 来源:尧图企业网站定制
简介面向升级至 Delphi 11 的 VCL 开发者这份 DevExpress VCL 20.2.6 控件安装包提供完整的非试用版组件集直接运行 DxAutoInstaller.exe 即可完成自动化安装省去手动配置环境、编译安装的繁琐流程装好后在 IDE 中就能直接调用有效规避国内渠道常见文件损坏、版本不符或无法编译等问题。压缩包采用 7z 格式整体体积约 473.21MB内含安装程序与相关组件资源可覆盖 DevExpress VCL 常用的网格、图表、日程、皮肤、工具栏等模块满足桌面客户端从界面美化到数据展示的完整开发需要。目前已有 512 人浏览学习资源经作者在 Delphi 11 环境亲测通过。对于正在升级开发环境的用户这份安装包能显著减少寻找资源与反复排错的时间快速恢复熟练的组件库让精力更集中到业务功能实现上。1. 拿到一个DevExpress VCL 20.2.6安装包先确认它能不能装进你的Delphi 11做Delphi开发的人几乎都绕不过DevExpress VCL这套控件库。标题里“支持到Delphi 11”这句才是这个安装包的第一价值点——20.2.6这个版本号对应的是2021年初发布的维护版正好覆盖RAD Studio 11 Alexandria。很多老项目卡在Delphi 7或XE8上不敢升级多半就是怕控件库跟不上而这个版本能让你在Delphi 11里继续用熟悉的dxRibbon、dxLayoutControl和cxGrid不用为了迁移控件而重写界面。“非试用版”意味着装上之后没有30天倒计时IDE不会每次启动弹试用提醒组件面板里的控件全部可用。对团队来说这点很关键试用版做完的Demo没法交给客户一旦到期整个工程都得停下来等授权。我拿到这个包之后实际装了一遍从解压、编译到在Delphi 11里跑通一个带皮肤界面的Demo全程不到半小时。这篇文章就把完整的安装步骤、配置细节和我在这个版本上踩过的坑写清楚。适合谁看正在用DevExpress VCL但受限于版本没法升到Delphi 11的开发者或者刚从Delphi 7/2010迁移过来、想确认20.2.6能否直接用的朋友。我会从版本兼容性原理讲到具体安装流程再给出三条避坑记录最后用一个验证方法确认安装是否真的完整。2. 先弄清楚DevExpress VCL 20.2.6的版本定位这套控件的体系和跨版本逻辑2.1 VCL版本体系和20.2.x的定位DevExpress VCL是一套基于VCL框架的商用控件集覆盖表格(cxGrid)、界面布局(dxLayoutControl)、功能区(dxRibbon)、皮肤引擎(dxSkins)等几十个组件库。版本号规则很简单20.2.6表示2020年第二个大版本的第6个维护更新。所以它不是什么小众分支就是20.2这条线上的成熟补丁版——20.2.0刚发布时可能踩到一些新控件崩溃的坑到20.2.6这些已知问题大多已经修掉了。很多开发者会拿它跟DevExpress Universal订阅里的最新版比但这里要分清一个概念版本支持IDE范围适合场景20.2.6Delphi 10.3 Rio至Delphi 11 Alexandria有稳定授权、不想追新的生产环境21.2Delphi 11及后续版本需要用最新控件特性、愿意承担升级风险我一般会建议老项目优先用已经过多个补丁迭代的版本而不是为了“最新”去当小白鼠。20.2.6正好处于这个平衡点它比20.2最初版稳定又比21.x少了些不兼容的API变更。标题里“支持到Delphi 11”指的就是官方在RAD Studio 11里测试通过而不是说它只能在Delphi 11上跑——10.4、10.3同样兼容。2.2 “支持到Delphi 11”是怎么实现的编译器和源码分发机制DevExpress VCL的安装包走的是源码分发加预编译包并存的路线。装完之后你会看到源码目录里每个组件库都有对应版本的.dpk、.dproj和.dcu。它在设计期通过IDE提供的工具接口注册到组件面板运行期则靠BPL包机制加载。关键点在于20.2.6之所以能被Delphi 11识别不是安装程序做了硬编码支持而是编译环境变量在起作用。Delphi 11的编译器是CodeGear版本对应关系里新增的一组符号DevExpress在源码里写了类似这样的条件编译{$IFDEF VER340} // Delphi 11 Alexandria // 20.2.6针对Delphi 11的适配代码 {$ELSEIF VER320} // Delphi 10.4 Sydney // 10.4的兼容分支 {$ENDIF}这段代码藏在每个组件的核心单元里用来区分不同IDE版本下的字符串类型、系统主题API调用方式。你不需要自己修改这些条件指令但安装时选择正确IDE版本安装程序才会把对应目录加入Library路径让编译时能找到正确的.dcu文件。2.3 为什么安装时会要求选择组件集源码头和编译范围的取舍DevExpress VCL把控件按功能拆成二十多个独立包例如dxGDIPlus基础绘图类几乎所有控件都依赖它cxGrid网格控件库dxRibbonOffice风格功能区dxRichEdit富文本编辑器dxSpreadsheet表格文档处理dxSkins皮肤引擎安装程序默认全选。但实际项目中我建议只勾选需要的组件集原因有两个一是每个包都要编译一遍全选的话首次编译耗时可能超过十分钟二是包之间会引入额外依赖某些组合下的dcl网包存在加载顺序问题少装反而少踩坑。首次编译耗时这个概念在后面配置时还会遇到——Delphi 11编译的临时文件写入速度比老版本快但DevExpress安装时的全量编译依然需要耐心。3. 在Delphi 11上安装DevExpress VCL 20.2.6从下载到首次编译的完整流程3.1 准备工作清理旧版本和确认IDE环境安装之前有两条必做的检查。第一条是确认Delphi 11已经装好并至少成功编译过一个空项目——这个条件听起来多余但如果你装的是精简版或绿色版缺少某些IDE组件会导致DevExpress安装程序找不到注册表里的IDE位置装完也白装。第二条是检查系统里有没有旧版DevExpress VCL残留。如果之前装过16.x或18.x注册表里会有残留的BPL加载项和路径设置直接装新版本会冲突。清理方式很简单用IDE的Component Install Packages菜单打开已安装包列表把DevExpress相关条目全选后Remove。再到控制面板卸载旧版DevExpress VCL。如果以前装过的是DIY源码编译版还需要把每个组件的源码目录从Library路径里删掉。检查IDE是否可以被第三方控件识别可以看IDE安装目录里是否有bds.exe对应的注册表项。运行regedit在HKEY_CURRENT_USER\SOFTWARE\Embarcadero\BDS\21.0处能看到IDE的安装路径和版本标识。21.0这个数字对应的是RAD Studio 11 Alexandria如果是Delphi 10.4则是20.010.3是19.0。3.2 解压安装包并运行安装程序几个容易被忽略的选项拿到安装包之后我习惯先把压缩包解压到一个不带空格的路径比如D:\DevEx\20.2.6而不是直接双击压缩包内的exe。原因是安装程序要执行的编译过程会调用命令行工具路径带空格或中文偶尔触发解析异常——这个概率不高但一旦遇到就非常难排查。运行安装程序Setup.exe之后界面会分几步选择安装目录源码默认释放路径勾选要安装的组件集选择IDE版本这里选Delphi 11选择编译方式全部编译或仅安装预编译包第四步是个关键决策。预编译包是安装程序自带的、已经编译好针对特定IDE版本的.dcu和.bpl文件。如果选择“仅安装预编译包”能立刻在IDE里用控件省去编译时间。不过DevExpress VCL有个常见做法是“全部重新编译”尤其在更换IDE补丁版本或修改了源码配置宏时比如把cxGrid的日期处理逻辑改成UTC预编译包不包含这些修改必须用源码重编。我个人建议第一次安装选“全部编译”原因很实际预编译包是安装包作者在特定环境生成的。如果读者的Delphi 11装了不同的Update版本比如Update 1和Update 2之间的RTL差异预编译包里某些引用可能会出现版本不同导致报错。源码编译能保证最终Dcu和生产环境完全匹配。选择完编译方式安装程序会依次编译每个组件包最后自动把生成的BPL文件注册到IDE。3.3 手动编译的命令行方式当安装程序只装了源码没触发编译安装程序在某些情况下会把“全部编译”这个过程跳过去比如系统权限不足时UAC弹窗没确认界面显示安装成功但项目编译时找不到dcu。遇到这种情况不用重装用命令行手动编译即可。在Delphi 11自带的命令提示符RAD Studio Command Prompt里执行cd /d D:\DevEx\20.2.6\Library\RS11 msbuild dxGdiPlus.dproj /t:Build /p:ConfigRelease msbuild cxGrid.dproj /t:Build /p:ConfigRelease这里RS11目录存放的是RAD Studio 11对应的项目文件。Build参数会按依赖关系把当前组件的源码全部编译完成后生成Dcu和Bpl。两个项目之间的Build顺序有讲究dxGdiPlus是底层依赖必须先编译cxGrid依赖dxGdiPlus放后面。如果顺序颠倒cxGrid编译时找不到dxGdiPlus.dcu会直接中断。编译完成后还需要把最后生成的Bpl注册到IDE。这一步不能用msbuild需要打开IDE手动装一次或者用命令行工具C:\Program Files (x86)\Embarcadero\Studio\21.0\bin\bds.exe -r D:\DevEx\20.2.6\Library\RS11\dxGdiPlus.bpl这里的-r参数表示加载指定BPL到设计期包列表。实际使用时这个参数在部分Delphi 11版本上有兼容问题更稳妥的方式是直接在IDE里通过Install Packages浏览到BPL文件位置Add进去后点OK。3.4 安装路径与Library路径的关联编译不通过时先查这里安装程序在注册组件时会把源码路径自动写入IDE的Library搜索路径。每个大版本在IDE里对应一个叫做Library的配置项它由多个路径组成用分号分隔。如果安装后项目编译时报“找不到cxGrid.pas或.dcu”之类的错误第一个要查的就是Library路径尤其是新装IDE后路径可能被重置。在Delphi 11里打开Tools Options DelphI Compiler Library查看Library Path中是否包含DevExpress的源码目录。比如D:\DevEx\20.2.6\Library\RS11 D:\DevEx\20.2.6\Library\RS11\cxGrid这里不能只加根目录因为不同组件包分散在各子目录里缺了哪个子目录就报哪个找不到。最保险的是把安装目录里Library\RS11下的所有子目录逐一加进去——这点安装脚本通常自己完成了但前面说过如果出现过UAC弹窗被忽略的情况路径设置可能不完整。可以用一个简单方法来验证打开IDE的Project Manager右键项目节点选择Build。报错信息里如果出现“Unit xxx was compiled with a different version of yyy”说明BPL与Dcu版本不匹配这种情况重新编译对应组件即可如果是“File not found: xxx.dcu”那无疑就是Library路径缺失把Dcu所在目录加进去就行。4. 控件安装后的运行时基础设施BPL/DCP机制与Design-Time包加载4.1 BPL、DCP、DCU三层文件格式搞懂后你才能快速解决编译报错DevExpress VCL的源码编译产物会同时出现三种文件。很多初学者把它们当成一回事实际分工完全不同文件类型全称作用.dcuDelphi Compiled Unit单元二进制编译被引用时直接读取.dcpDelphi Compiled Package包的编译元数据供其他包引用该包内的单元.bplBorland Package Library运行期或设计期的实际动态库IDE加载它们才显示控件图标用BPL方式加载的好处是多个项目可以共享一份控件库二进制不至于每个项目单独拖几十兆的源代码编译。代价是多了一层版本匹配关系——一个运行期BPL依赖的DCP必须和当前项目编译时用的DCP一致。在Delphi 11里编译一个引用了cxGrid的工程时编译器先在Library路径找到cxGrid.dcu再检查DCP版本是否匹配。所以升级DevExpress版本后旧的dcu/dcp/bpl混在一起会出很多怪问题。我在升级时习惯先把整个安装目录下的dcu、dcp、bpl全清一遍再重编尽管这样做会多花十来分钟却能省下后面两个小时的排错时间。cd /d D:\DevEx\20.2.6\Library\RS11 del /s /q *.dcu del /s /q *.dcp del /s /q *.bpl清理后重新Build整个解决方案确保所有二进制都来自同一套源码。这个方法听起来粗暴却是解决复现不了、偶发崩溃这类问题的第一步。4.2 设计期包与运行期包为什么IDE能显示控件但编译报错安装完成后IDE组件面板出现dxRibbon等控件图标只能说明设计期包加载成功。设计期包负责在IDE中显示属性编辑器、双击事件生成代码这些设计体验运行期包是程序编译后运行时需要的库。从IDE运行时角度理解更直观设计期包名称通常以dcl开头例如dclDXWebTileControlRS23.bpl前缀dcl表示design-time package运行期包名称通常不带这个前缀例如dxWebTileControlRS23.bpl如果打开组件面板能看到控件拖到窗体上也没有报错但一按F9运行或编译Release版本就报找不到xxxOcx.bpl或xxxDesign.bpl这通常是运行期BPL文件没有被Delphi找到。BPL的文件搜索路径由IDE的Environment Variables里的Path设置决定或在系统环境变量中指定。DevExpress安装程序会把它管理的运行期BPL目录加入系统Path环境变量如果安装时是手动跳过某些步骤这里就会出现链接不一致。检查方法很简单在IDE里运行一个带dxRibbon的空窗体看程序是否启动时报“无法找到BPL”。报了的话把失败的那个.bpl路径添到系统变量Path即可$path [Environment]::GetEnvironmentVariable(Path, Machine) $devExpressPath D:\DevEx\20.2.6\Library\RS11 if ($path -notlike *$devExpressPath*) { [Environment]::SetEnvironmentVariable(Path, $path;$devExpressPath, Machine) }这段PowerShell的作用是把DevExpress的运行期BPL目录追加到系统Path。注意修改后要重启IDE因为IDE在启动时读取环境变量运行中修改不会立即生效。4.3 Runtime Theme与皮肤资源的加载机制非编译期的另一个坑DevExpress VCL的皮肤模板是在设计期通过组件面板的dxSkinController注册的但皮肤数据在运行期存放在两个地方编译进程序资源的皮肤库以及外部的皮肤DLL。安装包默认提供皮肤DLL方式即在运行目录放一个类似dxSkinsCore.bpl的文件供程序动态加载。这种机制在开发机上没问题因为开发机上有完整安装目录但部署到客户机时如果只拷贝exe文件程序能跑但换肤会失效或直接报找不到皮肤。解决方式是把皮肤DLL和exe放到同一目录或使用皮肤资源静态编译进可执行文件。在DevExpress 20.2.6里可以做一个宏开关{$DEFINE DXSKINSSTATIC}放到项目文件的开头。这个宏启用后皮肤引擎会优先使用嵌入资源的皮肤数据而不是外部的DLL。对部署小工具类项目很实用——不用手动分发那一堆皮肤DLL。这个宏的启用需要重新编译DevExpress源码吗答案是不需要。皮肤代码在运行时判断资源是否存在找不到时才主退到DLL加载。工程里定义了这个宏之后链接器会把皮肤资源打包进exe最终体积可能增大几MB但换来的是单文件部署的省心。5. 安装与使用DevExpress 20.2.6过程中的10条踩坑记录这一章把我安装使用过程中遇到过的典型问题按“现象→原因→解决”列出来。这些问题在这个版本和Delphi 11组合下都真实存在过按顺序排查能省很多时间。5.1 编译报错“MSXMLDOM.dcu not found”现象安装完成后新建项目在Uses里加MSXMLDOM或打开带cxGrid的窗体编译报F2613 Unit MSXMLDOM not found。原因DevExpress的XML处理单元依赖系统MSXML SDK的导入单元。Delphi 11不像老版本自带这个dcu在默认库路径里需要额外安装或指定路径。这和标题热搜词里出现的“delphi msxmldom.dcu not found”是同一个问题。解决Delphi 11自带的System.Win.msxml等单元已经覆盖了大部分MSXML功能。但DevExpress 20.2.6某些模块仍引用旧版MSXMLDOM单元。检查IDE的Library路径是否包含C:\Program Files (x86)\Embarcadero\Studio\21.0\source\rtl\win目录没有则手动添加。如果问题依旧在源码里找到引用MSXMLDOM的单元把Uses替换为Winapi.MSXMLDOM或System.Win.msxml即可。注意替换后要重新编译对应组件。5.2 安装程序提示成功但IDE组件面板里没有DevExpress选项卡现象安装过程无报错重新打开IDE组件面板找不到dx开头的控件。原因设计期BPL没有成功注册到IDE。这类问题常见于安装程序在注册组件时以管理员权限运行了IDE但当前用户没有对应注册表的写权限或IDE缓存没刷新。解决打开IDE的Component菜单选择Install Packages点击Add按钮手动浏览到D:\DevEx\20.2.6\Library\RS11目录选中所有dcl*开头的BPL文件逐一添加。添加后IDE会刷新组件面板。如果仍然看不到检查文件是否在这个目录里。5.3 程序运行时报错“Cannot find dxGdiPlus.bpl”现象开发环境编译、链接都正常但程序启动时弹出“Cannot find dxGdiPlus.bpl”或“The procedure entry point ... could not be located”。原因运行期BPL目录不在系统Path中。开发机上可能安装了多个版本的DevExpressPath指向了旧版的目录导致运行时抓取了错误的BPL文件。解决先确认Delphi 11的项目工程当前使用的是20.2.6的安装目录。再到系统环境变量Path中查看DevExpress相关路径只保留20.2.6版本对应路径删除旧版本的BPL目录。重启IDE后重新编译运行。另外排查一下是否有多个版本的BPL混在同一目录特别是Library\RS11和Library\RS20共存的情况。5.4 升级到20.2.6后控件的默认字体变大了现象原有工程从旧版DevExpress升级到20.2.6后界面上的cxGrid和dxRibbon的文字显示比原来大一圈。原因20.2.x引入了一个全局字体设置——DefaultFontSize和DefaultFontName。新安装默认启用自动适应系统DPI而当系统缩放是125%或150%时控件的默认字体尺寸会被放大。解决在程序初始化代码里设置全局默认字体procedure TMainForm.FormCreate(Sender: TObject); var params: TdxLayoutLookAndFeelValues; begin dxGdiPlus.DetectDPI : False; // 关闭DPI自动检测 dxSkins.DefaultFontName : 微软雅黑; dxSkins.DefaultFontSize : 9; end;这段代码放在主窗体的OnCreate事件中。DetectDPI设为False后控件不再按系统缩放比例调整字体全部按DefaultFontSize和DefaultFontName渲染。对老项目的界面还原效果明显。注意这个设置是全局的新项目如果想跟随系统DPI则不要设置这个属性。5.5 编译完成的程序在未安装DevExpress的机器上不能运行现象程序在本机运行一切正常复制exe和相关DLL到干净机器上后提示缺少DLL或直接报错退出——这是把开发机当成部署机的常见翻车现场。原因程序编译时可能链接了DevExpress的BPL运行期库这些库没有打进可执行文件。需要确认项目里是使用动态BPL方式还是静态链接方式。DevExpress VCL默认支持两种但默认安装方案是BPL方式。解决打开项目工程的Project Options找到Packages区域勾选“Build with runtime packages”时去掉这一项或把项目改为静态链接方式。RAD Studio的Project Options Packages页面勾选Build with runtime packages程序运行时需要DevExpress对应BPL文件不勾选所有DevExpress代码静态编译进exe单文件体积增大但免部署DLL我一般用静态链接做小工具用BPL方式做大项目。省心比体积更重要时选静态。值得注意的是这里涉及一个隐藏依赖即使静态编译皮肤引擎的字体渲染模块仍可能引用系统GDI的DLL。如果部署的是Windows 7以下系统确认已安装GDI更新。Windows 10及以上的机器一般没问题。5.6 控件包互斥冲突cxGrid与dxRibbon混用时的编译顺序现象项目里同时使用cxGrid和dxRibbon编译时出现Unit dxRibbon was compiled with a different version of cxGrid之类的版本冲突。原因DevExpress的包之间存在依赖链。当你手动执行Build命令时编译顺序不对BPL之间引用的版本号和实际生成的DCP版本不匹配。解决不要手动分包编译用安装程序自带的Build All功能。它内部按拓扑顺序处理依赖底层基础包dxGdiPlus/utils先编译再编译中间层dxSkins/dxCore最后才编译cxGrid/dxRibbon这些上层控件。如果已经手动编译乱了解决方法是把BPL和DCP全部清理重新整体Build。顺序如下cd /d D:\DevEx\20.2.6\Library\RS11 msbuild dxGdiPlus.dproj /t:Build /p:ConfigRelease msbuild dxCore.dproj /t:Build /p:ConfigRelease msbuild dxSkins.dproj /t:Build /p:ConfigRelease msbuild cxGrid.dproj /t:Build /p:ConfigRelease msbuild dxRibbon.dproj /t:Build /p:ConfigRelease5.7 安装后IDE启动变得很慢现象安装DevExpress 20.2.6后IDE启动从几秒变成十几秒甚至更久。原因IDE启动时需要加载所有已注册的设计期包。DevExpress的每个BPL都比较大组件多了加载就慢尤其在机械硬盘上。解决在IDE的Component Install Packages里把不常用的DevExpress包移除注册只保留当前项目实际用到的。组件面板上太多不用的控件集合不但拖慢启动误拖控件的概率也高。5.8 皮肤切换在程序运行时报“Invalid skin name”现象程序运行正常换肤时抛异常“Invalid skin name”。原因指定的皮肤名称不在当前皮肤引擎的注册表里。DevExpress的皮肤名称区分大小写而且不同版本内置的皮肤集合有变化——20.2.6里某些皮肤名改过。解决用dxSkinController的GetSkinNames方法列出内置皮肤名不用手敲字符串。var names: TStringList; i: Integer; begin names : TStringList.Create; try dxSkinController1.GetSkinNames(names); for i : 0 to names.Count - 1 do Memo1.Lines.Add(names[i]); finally names.Free; end; end;运行后在Memo里能看到全部有效皮肤名复制其一赋给SkinName属性即可。5.9 安装包解压被杀毒软件误删现象从网上下载的安装包解压时杀毒软件报警并删除某个文件导致安装过程中断。原因安装包里包含用于注册IDE的代码或触发加壳特征的exe在某些杀毒引擎的启发式扫描下被误报。解决先通过文件哈希校验确认包的完整性再在隔离区恢复被删文件或临时关闭实时防护后重新解压。注意恢复文件时检查报警名称确认不是真正的木马特征后操作。5.10 Delphi 11自带的VCL控件与DevExpress同名冲突现象Uses中加入DevExpress单元后编译报出歧义——有些单元名与系统VCL重名。原因DevExpress 20.2.6里叫dxRibbon的单元和Delphi 11自带系统的System.Win.Ribbon等命名会有歧义在Uses列表位置不同会触发不同的冲突。解决在两个单元的引用处使用完整单元名加前缀或者调整Uses顺序让DevExpress优先解析。在Delphi 11里把DevExpress相关的Uses放在系统单元之前编译器优先采用DevExpress的版本。如果不想改动现有Uses顺序可以通过单元别名机制program MyApp; uses // 显式指定 dxRibbon in D:\DevEx\20.2.6\Library\RS11\dxRibbon.pas, System.Win.Ribbon;这种显式路径写法虽然不优雅但在多版本共存时最直接避免IDE自动选择错乱。6. 验证安装是否完整写一个小Demo覆盖五大核心场景并检查版本信息安装完成后与其急着把老项目拿过来编译不如先新建一个干净项目跑通以下几个核心场景确认控件库真的能工作。先建一个VCL Forms Application在窗体Form1上放以下控件dxRibbon、cxGrid、dxLayoutControl、dxSkinsController再放一个Button。运行前在工程文件里确保以下Uses存在uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, dxRibbon, cxGrid, cxGridDBTableView, dxLayoutControl, dxSkinsCore, dxSkinsDefaultPainters;运行成功说明BPL加载和DCU编译匹配。如果这一步就报错直接按第五章的踩坑记录排查。接着验证版本信息是否真的加载了20.2.6而不是残留的旧版。在Button的OnClick事件里取DevExpress的版本字符串procedure TForm1.Button1Click(Sender: TObject); var ver: string; begin ver : dxBuildNumberReader.BuildNumber.ToString; ShowMessage(Build: ver); end;正常显示的BuildNumber对应20.2.6的内部构建号。如果你对具体数值不确定也没有关系——只要ShowMessage弹出的版本号前缀是20.2.x就说明加载的是这个版本的BPL而不是IDE缓存了旧包的路径。这一步非常值得做我遇到过装了新版本但实际加载的还是以前手动配置的旧DCP的情况。最后验证皮肤引擎能正常加载皮肤列表。在FormCreate里遍历GetSkinNames并输出到Memo或ListBox。如果这个列表是空的说明皮肤引擎注册失败但主程序没报错——这会让你在客户现场换肤时才暴露问题。列表里有几十个皮肤名称才是正常的。这个验证方法一共三步干净项目Build通过、版本号显示20.2.x、皮肤列表非空。三步全过这个安装包对你的环境就是可用的可以放心把老工程的开发环境升级过来。如果第三步失败但前两步通过多半是BPL搜索路径不完全按5.3的处理方式把运行期目录加进Path。我每次换新版本都固执地跑一遍这三步积累了这样验证的好习惯之后几乎没再被“安装成功但运行出问题”这种麻烦卡住过。希望帮到你快把测试跑起来确认一下你手里的包是不是也真的没问题。本文还有配套的精品资源点击获取

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑