Delphi 10.1 Berlin 下 Raize 6.1.1.12 修正版安装与避坑指南

发布时间:2026/10/27 21:25:44
Delphi 10.1 Berlin 下 Raize 6.1.1.12 修正版安装与避坑指南 简介Raize Components 6.1.1.12DX10.1 Berlin修正版面向仍在使用 Delphi/CBuilder Berlin 的桌面应用开发者主要解决原版 Pascal 源文件存在语法错误、组件包难以顺利编译的问题也适合维护旧项目或研究经典控件实现的读者。压缩包共 956 个文件约 10.74MB以 202 个 hpp、198 个 dcu、114 个 pas 和 183 个 bmp 为主分别对应 C 头文件、预编译单元、Pascal 源码与界面图像素材同时含有 dfm 窗体资源、dpk 与 dproj 包工程、res 资源及构建脚本目录按源码、资源、包工程分区检索和比对较为方便。包内附带安装说明与已调整的配置文件并修正了会导致编译失败的 pas 错误可帮助读者减少环境配置和排错时间快速理解组件包的组织方式与依赖关系。该版本保留完整设计期控件、运行时包与示例图像便于对照组件声明与资源引用。目前已有 330 人学习下载适合需要复用界面控件、补齐旧版编译链或进行源码级研究的开发者参考。1. 从一次编译报错说起Raize 6.1.1.12 在 Berlin 下的真实安装门槛上周帮一个朋友处理他维护了七年的老项目Delphi 10.1 Berlin 环境打开工程就弹出一串Unit RzCommon not found。项目里几十个窗体依赖 Raize 控件源码在但设计期包怎么也装不上。官方原版安装包在 Berlin 上跑一半就报编译错误换了两台机器都一样。后来翻到一个修正版资源——Raize_6.1.1.12_DX10_1_Berlin_cocashu修正版才把环境恢复。这个包本质上是 Raize Components 6.1.1.12 针对 DX10.1 Berlin 的适配补丁解决官方包因 IDE 内部单元变动导致的编译失败和设计期注册异常。它适合两类人一是维护老 Delphi 项目、必须用回 Raize 控件库的开发者二是刚从旧版 IDE 迁移到 Berlin、需要一套能用控件包的团队。安装过程不算复杂但版本对位和包编译顺序错了就会卡在“包已加载但控件不出现”的玄学状态。2. 拆包与版本对位先确认你的 IDE 和 Raize 版本锁死2.1 为什么 DX10.1 Berlin 需要专用修正版Raize Components 6.1.1.12 官方发布的时候主要适配的是 Delphi 10 Seattle 和更早版本。Berlin 虽然同属 10.x 系列但 IDE 内部的一些单元接口和包结构发生了变化尤其是设计期包依赖的DesignIntf、DesignEditors等单元在 Berlin 里增加了新的方法声明。官方安装包里的预编译包和源码在 Berlin 下编译时会遇到两类典型错误一类是E2003 Undeclared identifier指向某些设计期单元的新增方法另一类是F2613 Unit Rz... not found因为包引用路径里还带着旧版 IDE 的目录结构。修正版做的事情并不神秘——它调整了包项目的引用路径修补了源码里与 Berlin 不兼容的条件编译分支并且重新组织了安装脚本的搜索顺序。所以你不能拿一个 Seattle 版本的 Raize 包硬塞进 Berlin即使强行编译通过设计期控件注册也可能失败。常见做法是先确认 IDE 的完整版本号在 Berlin 的 IDE 里点Help→About看版本号是否为 24.0.22858.6822 这类 24.0 开头的编号。Raize 6.1.1.12 修正版的目录名里带DX10_1就是专门给这个版本用的。如果你用的是 Delphi 10.2 Tokyo 或更高版本这个包不适合直接套用需要找对应版本的 Raize 修正包。版本锁死这件事没有后悔药装之前花两分钟核对比装完再卸载干净得多。我一般会先检查系统里是否残留旧版 Raize 的包。Berlin 的 IDE 里如果之前装过官方版但没卸载干净组件面板上可能还留着半套控件这时候再装修正版就会出现两个同名包竞争。正确的清理顺序是打开 IDE 的Component→Install Packages在列表里找到所有名字带Raize的设计期包逐个选中并点Remove注意不要勾选“Delete files from disk”只从 IDE 注销。然后关闭 IDE去注册表里搜Raize关键字把HKEY_CURRENT_USER\Software\Embarcadero\BDS\18.0\Known Packages下面残留的 Raize 路径项删掉。这一步很多人会跳过结果修正版装完后控件面板出现重复项或者编译时提示包版本冲突。清理完再解压修正包能避开一半的玄学问题。2.2 解压后先看这三个目录Source、Packages、Bin修正版解压后的根目录通常包含Source、Packages、Bin、Demos等文件夹。别急着双击任何 exe 或 bat先花几分钟把目录结构摸清楚。Source里是全部控件的 Pascal 源码按功能分成RzCommon、RzEdit、RzGrids等子目录每个子目录下都有对应的.pas文件。Packages里存放的是包项目文件Delphi 的包项目后缀是.dproj运行期包通常叫RaizeComponentsVcl.dproj设计期包叫RaizeComponentsVcl_D.dproj或类似名字。Bin目录里可能会有预编译的.bpl和.dcp文件但修正版为了兼容 Berlin一般建议从源码重新编译不要直接使用预编译文件因为预编译文件可能是在不同补丁级别的 IDE 下生成的。Demos里是示例工程可以用来验证安装是否成功但不要一上来就编译 Demo先把包装好。这里有一个细节容易被忽略修正版的Source目录里可能包含一个Raize.inc或RzConfig.inc这样的配置文件里面定义了条件编译开关比如RAIZE_DX10_1或者RAIZE_HDPI。你需要确认这个文件里的开关与你的 IDE 版本匹配。有些修正版会把这个判断放在安装脚本里自动完成但手动编译时如果开关不对就会出现“编译通过但控件行为异常”的情况。我一般会打开这个 inc 文件看一眼确保DX10_1相关的定义是打开的而不是被注释掉。另外Packages目录下可能还有Win32和Win64两个子目录分别存放不同平台的包项目。Berlin 默认编译 Win32 包如果你的项目需要 Win64就要在安装完 Win32 设计期包之后单独编译 Win64 运行期包并把它加入库路径。不要想着一个包通吃两个平台Delphi 的包是按平台分开的。提示解压路径里不要带中文或空格比如D:\工作\Raize修正版这种路径在 msbuild 编译时容易因为编码问题报错。我习惯解压到D:\Components\Raize_6.1.1.12_Berlin纯英文、无空格后续命令行操作也省心。3. 编译与安装全流程从 msbuild 命令行到设计期包注册3.1 用 msbuild 编译运行期包虽然可以在 IDE 里打开包项目手动编译但用 msbuild 命令行更可控尤其是需要反复重装或者批量部署的时候。Berlin 自带的 msbuild 路径通常在C:\Program Files (x86)\Embarcadero\Studio\18.0\bin下面但更稳妥的方式是使用 RAD Studio 提供的rsvars.bat来初始化环境变量。打开命令行先执行rsvars.bat然后切换到修正版的Packages\Win32目录用 msbuild 编译运行期包。下面这段命令是我常用的模板路径根据实际解压位置调整# 先初始化 Delphi 编译环境路径按你的 Berlin 安装位置改 call C:\Program Files (x86)\Embarcadero\Studio\18.0\bin\rsvars.bat # 进入修正版的 Win32 包目录 cd /d D:\Components\Raize_6.1.1.12_Berlin\Packages\Win32 # 编译运行期包Release 配置Win32 平台 msbuild RaizeComponentsVcl.dproj /p:ConfigRelease /p:PlatformWin32 /t:Build /v:minimal这段命令里rsvars.bat的作用是把bds、msbuild等工具加入 PATH并设置BDS环境变量这样 msbuild 才能找到 Delphi 的编译器和库路径。/p:ConfigRelease指定编译 Release 版本减少调试信息包体积也小一些/p:PlatformWin32明确平台避免默认平台不对导致编译失败/t:Build表示执行完整构建而不是增量编译/v:minimal把输出精简到只显示警告和错误方便看关键信息。如果编译成功会在Packages\Win32\下生成RaizeComponentsVcl.bpl和RaizeComponentsVcl.dcp等文件。注意看输出里有没有警告字样有些警告是修正版为了兼容 Berlin 故意保留的不影响使用但如果是错误就要停下来看具体是哪个单元报错。编译运行期包时最常见的失败原因是库路径里缺少 Raize 的 Source 目录。msbuild 编译包项目时会按照.dproj里定义的搜索路径去找单元如果修正版的包项目里写的是相对路径而你的解压位置和它预期的相对关系不一致就会报F1026 File not found: RzCommon.pas。解决办法有两个一是在编译前手动把Source目录加到系统环境变量BDSLIB或者 IDE 的库路径里二是直接用 msbuild 的/p:IncludePath参数追加路径。我一般用第二种命令行里一次写清楚不污染全局环境msbuild RaizeComponentsVcl.dproj /p:ConfigRelease /p:PlatformWin32 /t:Build ^ /p:IncludePathD:\Components\Raize_6.1.1.12_Berlin\Source;$(IncludePath)这里^是 Windows 命令行的续行符$(IncludePath)保留原有的搜索路径把 Raize 的 Source 目录插到最前面。这样编译时优先从修正版源码里找单元避免误用系统里残留的旧版 Raize 单元。编译完运行期包之后先别急着装设计期包打开Packages\Win32目录确认生成的.bpl文件时间戳是刚才的避免编译输出到了别的目录。3.2 在 IDE 中安装设计期包并配置库路径运行期包编译成功后就可以安装设计期包了。设计期包的项目文件通常叫RaizeComponentsVcl_D.dproj同样在Packages\Win32目录下。你可以继续用 msbuild 编译它但设计期包的注册动作必须在 IDE 里完成因为需要把控件注册到组件面板。步骤是打开 Berlin IDE点Component→Install Packages在弹出的对话框里点Add浏览到Packages\Win32\RaizeComponentsVcl_D.bpl如果还没编译就先在 IDE 里打开RaizeComponentsVcl_D.dproj点 Build。选中后点OKIDE 会加载设计期包。如果加载成功组件面板上会出现一个Raize标签页里面排列着RzButton、RzEdit、RzGrid等控件。但很多时候第一次加载会弹窗报错提示Cannot load package RaizeComponentsVcl_D或者The specified module could not be found。这通常是因为设计期包依赖运行期包而运行期包的路径没有加入 IDE 的包搜索路径。Berlin 的 IDE 里包搜索路径在Tools→Options→Environment Options→Delphi Options→Library里设置分为Library path和Browsing path。你需要把Packages\Win32目录加到Library path的最前面同时把Source目录也加进去。注意Library path是分平台的Win32 和 Win64 要分别配置。配置完点OK保存最好重启一次 IDE让路径生效。重启后再去Install Packages里添加设计期包成功率会高很多。安装成功后还有一步不能漏把 Raize 的 Source 路径和包输出路径固化到 IDE 的库路径里否则以后新建工程引用 Raize 控件时编译器找不到.dcu文件。我一般会在Library path里加两条D:\Components\Raize_6.1.1.12_Berlin\Source和D:\Components\Raize_6.1.1.12_Berlin\Packages\Win32。前者让编译器找到源码后者让链接器找到.dcp和.bpl。如果是团队协作可以把这些路径写进工程的.dproj文件里或者用环境变量统一管理避免每个人机器上的路径不一致。配置完可以新建一个空 VCL 工程从组件面板拖一个RzButton到窗体上按 F9 运行如果能正常显示按钮说明运行期和设计期都通了。注意安装设计期包之前确认 IDE 里没有加载其他版本的 Raize 包。如果Install Packages列表里已经有RaizeComponentsVcl_D但路径指向旧目录先 Remove 再 Add 新路径不要直接覆盖否则会出现“包已加载但控件版本混用”的怪现象。4. 避坑排查安装 Raize 时最常翻车的五个现场4.1 现象编译运行期包时报F2613 Unit RzCommon not found原因msbuild 没有找到 Raize 的 Source 目录或者.dproj里的相对路径和你实际解压位置不匹配。修正版的包项目里可能写的是..\..\Source如果你把Packages目录单独拷出来编译相对路径就断了。解决用前面提到的/p:IncludePath参数显式指定 Source 绝对路径或者把整个修正版目录结构保持完整不要只复制Packages子目录。我习惯在编译前先cd到Packages\Win32确认上级目录里确实有Source文件夹再用dir ..\..\Source\RzCommon.pas验证一下文件存在。4.2 现象设计期包加载时报Cannot load package RaizeComponentsVcl_D提示缺少RaizeComponentsVcl.bpl原因设计期包依赖运行期包但 IDE 的包搜索路径里没有运行期包所在的目录或者运行期包的平台版本不对比如编译了 Win64 的运行期包但设计期包是 Win32 的。解决先确认Packages\Win32目录下有RaizeComponentsVcl.bpl然后检查 IDE 的Library path是否包含这个目录。如果路径正确但还是报错用Dependency Walker这类工具打开设计期包看它依赖的 BPL 名字和实际生成的文件名是否一致。修正版有时会改包名比如把RaizeComponentsVcl.bpl改成RaizeComponentsVcl_6.bpl这时候需要手动调整设计期包项目里的引用或者把生成的文件名改回去。4.3 现象控件面板上 Raize 标签页出现了但控件是灰色的拖到窗体上没反应原因设计期包虽然加载了但控件的注册信息没有正确写入 IDE 的组件注册表常见于之前装过旧版 Raize 且没清理干净或者 IDE 的Known Packages注册表项里有冲突。解决关闭 IDE打开注册表编辑器定位到HKEY_CURRENT_USER\Software\Embarcadero\BDS\18.0\Known Packages把里面所有包含Raize的字符串值删掉。然后删除HKEY_CURRENT_USER\Software\Embarcadero\BDS\18.0\Palette下的Raize子键如果有的话。重新打开 IDE重新安装设计期包。如果还不行在 IDE 里点Component→Install Packages把 Raize 包 Remove 掉然后手动打开RaizeComponentsVcl_D.dproj点Install按钮不是 Build让 IDE 走一遍完整的注册流程。4.4 现象新建工程编译时提示Unit RzButton not found但设计期控件已经能拖放原因设计期包安装只影响 IDE 的组件面板编译工程时编译器走的是Library path里的搜索路径。如果你的工程没有把 Raize 的 Source 目录和包输出目录加进去编译器就找不到单元。解决打开Project→Options→Delphi Compiler→Search path把D:\Components\Raize_6.1.1.12_Berlin\Source和D:\Components\Raize_6.1.1.12_Berlin\Packages\Win32加进去。注意这个设置是每个工程独立的如果团队里其他人拉取代码后也报同样的错最好把这些路径写进项目的.dproj里或者用 IDE 的Environment Options统一配置避免每个人手动加。4.5 现象修正版装完后原来工程里的一些 Raize 控件属性变成默认值或者运行时行为异常原因修正版可能修改了某些控件的默认属性或事件签名以适配 Berlin 的 VCL 变化。如果你的工程是从旧版 IDE 迁移过来的窗体文件里保存的属性值和修正版控件类的默认值不一致IDE 重新加载窗体时可能会重置部分属性。解决安装修正版之前先备份整个工程目录。装完后打开工程逐个检查窗体上的 Raize 控件重点看RzGrid的列定义、RzEdit的输入掩码、RzButton的图片列表等属性。如果发现属性丢失从备份里对比.dfm文件手动恢复。更稳妥的做法是先用修正版编译一个测试工程确认控件行为正常后再迁移正式项目。5. 验证安装新建工程拖控件与运行时自检5.1 设计期验证控件面板与 About 对话框安装完设计期包后不要直接打开正式工程先新建一个干净的 VCL Forms Application 做验证。在 IDE 里点File→New→VCL Forms Application - Delphi然后在组件面板的Raize标签页里找几个代表性控件拖到窗体上RzButton、RzEdit、RzGrid、RzPageControl。拖放时注意观察 IDE 的消息窗口如果出现Access violation或者Class not registered说明设计期包注册有问题回到第 4 章排查。拖放完成后右键任意一个 Raize 控件看右键菜单里有没有About Raize Components这一项。点开它弹出的窗口里会显示版本号6.1.1.12和构建信息。如果版本号正确说明设计期包加载的是修正版而不是系统里残留的旧版。设计期验证还有一个细节检查控件面板上的图标是否正常显示。有些修正版因为资源文件路径问题图标会变成默认的空白方块虽然不影响功能但说明包里的资源编译不完整。这时候可以重新编译设计期包或者检查Source目录下的.res文件是否被正确引用。我一般会在验证阶段拖一个RzGrid双击它打开列编辑器随便加两列看编辑器能不能正常响应。如果列编辑器打不开或者报错说明设计期的属性编辑器注册有问题后续开发会很难受必须在这个阶段解决。5.2 运行期验证一个最小示例设计期没问题后写一个最小运行时代码验证控件的核心功能。以下代码放在窗体单元的FormCreate事件里用RzButton弹出一个消息框并用RzEdit做简单的输入校验。代码中的控件名按你实际拖放的命名调整procedure TForm1.FormCreate(Sender: TObject); begin // 初始化 RzEdit设置输入掩码为电话号码格式 RzEdit1.Text : ; RzEdit1.MaxLength : 11; RzEdit1.EditMask : (999) 000-0000;1;_; RzEdit1.Text : 13800138000; // 初始化 RzButton绑定点击事件 RzButton1.Caption : 校验号码; RzButton1.OnClick : RzButton1Click; end; procedure TForm1.RzButton1Click(Sender: TObject); begin // 检查 RzEdit 的文本是否为空 if Trim(RzEdit1.Text) then begin ShowMessage(号码不能为空); Exit; end; // 利用 RzEdit 的 EditMask 验证输入格式 if not RzEdit1.ValidateEdit then begin ShowMessage(号码格式不正确请按 (999) 000-0000 输入); Exit; end; ShowMessage(输入通过 RzEdit1.Text); end;这段代码里EditMask属性是 Raize 的RzEdit特有的输入掩码设置(999) 000-0000;1;_表示区号三位数字、空格、七位数字;1表示掩码字符是否保存到 Text 里;_表示空白占位符。ValidateEdit方法会按照掩码规则检查当前文本返回布尔值。运行后如果输入不完整或者格式不对点按钮会弹出提示格式正确则显示通过信息。这个示例同时验证了控件的绘制、事件绑定和输入校验三个核心环节。如果你拖的是RzButton运行时按钮的样式应该比标准TButton更扁平或者带渐变具体取决于修正版里默认的Style设置。如果按钮显示成普通 Windows 按钮说明 Raize 的控件注册没有完全生效可能只加载了部分包。运行时还可以检查RzGrid的数据绑定。从组件面板拖一个RzGrid和一个DataSource在代码里动态创建一个ClientDataSet并绑定看网格能否正常显示列和数据。如果网格显示空白但列头正常通常是ClientDataSet没有打开或者字段定义没匹配。这类问题属于使用层面的配置不是安装问题但能帮你确认 Raize 控件在运行时确实在工作而不是只有一个空壳。6. 修正版进阶批量部署与多平台编译的一个小技巧团队里如果有多个开发者需要装这套环境挨个手动点 IDE 安装太费时间而且容易因为路径差异导致有人成功有人失败。我一般会写一个批处理脚本把编译、拷贝和注册表配置串起来新机器上执行一次就能把运行期包和设计期包都准备好。下面这个脚本的思路是先调用rsvars.bat初始化环境然后编译 Win32 运行期包和设计期包最后把包路径写入当前用户的Known Packages注册表项。注意注册表操作需要管理员权限而且写入前要先备份原有键值。echo off setlocal rem 设置修正版解压根目录按实际路径修改 set RAIZE_ROOTD:\Components\Raize_6.1.1.12_Berlin set BDS_VERSION18.0 rem 初始化 Delphi 编译环境 call C:\Program Files (x86)\Embarcadero\Studio\%BDS_VERSION%\bin\rsvars.bat rem 编译 Win32 运行期包 cd /d %RAIZE_ROOT%\Packages\Win32 msbuild RaizeComponentsVcl.dproj /p:ConfigRelease /p:PlatformWin32 /t:Build /v:minimal if errorlevel 1 ( echo 运行期包编译失败检查 Source 路径 exit /b 1 ) rem 编译 Win32 设计期包 msbuild RaizeComponentsVcl_D.dproj /p:ConfigRelease /p:PlatformWin32 /t:Build /v:minimal if errorlevel 1 ( echo 设计期包编译失败 exit /b 1 ) rem 将包路径写入当前用户的 Known Packages 注册表 reg add HKCU\Software\Embarcadero\BDS\%BDS_VERSION%\Known Packages ^ /v %RAIZE_ROOT%\Packages\Win32\RaizeComponentsVcl_D.bpl /t REG_SZ /d Raize Components 6.1.1.12 Design Package /f echo 编译完成注册表已更新。请手动打开 IDE 的 Install Packages 确认加载。 endlocal脚本里reg add那一行把设计期包的完整路径写进Known Packages键名就是 BPL 文件的绝对路径键值可以填一段描述。这样下次打开 IDE 时Berlin 会自动尝试加载这个包。但注意自动加载的前提是运行期包的路径已经在Library path里否则 IDE 加载设计期包时还是会报找不到依赖。所以脚本执行完后还需要在 IDE 里手动检查一次Library path把%RAIZE_ROOT%\Source和%RAIZE_ROOT%\Packages\Win32加进去。这一步没法完全脚本化因为 Berlin 的库路径存在注册表的Library Path键里格式比较复杂手动配置更稳妥。多平台编译方面如果项目需要 Win64 版本不能只编译 Win32 包。你需要把Packages\Win64目录下的运行期包项目用msbuild编译一遍平台参数改成Win64然后把生成的.bpl和.dcp路径加到 Win64 的Library path里。设计期包一般只需要 Win32因为 IDE 本身是 32 位的但运行期包必须两个平台都编译。我踩过的坑是只编译了 Win32 运行期包结果 Win64 工程编译时提示Unit RzCommon not found因为 Win64 的库路径里没有对应的.dcp。后来养成习惯装完 Raize 后立刻用msbuild把 Win64 运行期包也编译出来放在Packages\Win64下再统一加路径。这样不管团队里谁切到 Win64 平台都不会因为缺包卡住。从那以后我每次装 Delphi 第三方控件包都强制走一遍“先编运行期、再编设计期、最后手动验证拖控件”的流程不再相信安装脚本里的一键完成。希望帮到你。本文还有配套的精品资源点击获取

关于本文作者

来自尧图内容编辑团队

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

尧图内容编辑团队

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

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

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

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

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

网站改版的5个关键决策

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

获取专属建站方案

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

立即免费咨询