首页 / 资讯中心 / 文章详情

Delphi 10.1 Berlin 安装 Raize 组件包全指南:顺序、路径与排错

Delphi 10.1 Berlin 安装 Raize 组件包全指南:顺序、路径与排错 ★ FEATURED ARTICLE
简介Raize_6.1.1.12_DX10_1_Berlin_cocashu修正版是一份针对 Delphi Berlin即 DX10.1环境的 Raize 组件库安装资源重点修正了原版 pas 文件错误导致的编译失败问题。资源面向使用 Delphi 10.1 Berlin 并需要集成 Raize 控件的开发者也适合需要查看组件源码或进行二次封装的进阶用户。按说明将文件解压到 C:\Program Files\Raize\ 后执行 RC6\Source 目录下的 !Build_RC6.cmd 即可完成环境配置作者亲测可用。包体共包含 956 个文件大小约 10.74MB涵盖 hpp 头文件、pas 源文件、dcu 预编译单元、dfm 窗体布局、bmp 图像素材以及 dpk/dproj 工程文件和 cmd 构建脚本结构清晰便于按需选用。压缩包内还附有安装说明和预先调整好的配置文件能帮助使用者快速避开组件编译时的常见坑点。目前已有 330 人学习下载适合作为 Delphi Berlin 环境下 Raize 组件安装与使用的可靠参考。1. Raize 6.1.1.12 在 Delphi 10.1 Berlin 上装不上的真正原因版本、顺序与路径拿到 Raize_6.1.1.12_DX10_1_Berlin_cocashu修正版 这份安装包时我第一反应不是解压而是先确认它对应的是哪个 Delphi 版本。Raize6 的 DX10.1 安装说明关键词其实只有一个10.1 Berlin。这个版本写错一个数字组件面板就会在装完后一片空白IDE 启动还可能直接弹“Cant load package”。装 Raize 和装普通控件不一样它不是编译完一个包就结束而是运行期包、设计期包、Library Path 三条线要同时落位。很多人装不上真不是包坏了而是把设计期包当运行期包装或者编译顺序搞反了再不就是路径里有中文把编译脚本坑了。这篇笔记就是留给还在 10.1 Berlin 上维护老项目的开发者看的照着顺序走十分钟把它装进 IDE。2. 安装前准备先核对版本号再解压2.1 确认 IDE 版本、编译器和包名的对应关系Delphi 10.1 Berlin 在 IDE 的 About 界面里显示版本号为 24.0对应条件编译指令是 VER240。Raize 6.1.1.12 的 DX10_1 目录顾名思义就是为 10.1 Berlin 准备的包文件命名里一般会体现 10_1少数使用 24 这个内部代号。拿到安装包先不要急着解压先把目录名看清楚确认不是 DX10_2 或 DX10_3。我曾经装错过一次 10.2 的包IDE 重启后直接报二进制格式错误整个组件面板消失最后只能靠清理注册项救回来属于最不值得踩的坑。确认版本还有一个土办法用记事本打开 .dpk 包文件看头部引用的编译器版本指令。如果是 VER240那就是给 10.1 Berlin 用的如果是 VER250 或 VER260那说明这份包是在别的 Delphi 版本下编译的不要期待它能直接装进 10.1 Berlin。Raize 6.1.1.12 修正版之所以叫修正版通常是在原版基础上补过编译顺序或高 DPI 下的图标问题它并不改变版本对应关系。修正版包里一般会附一个说明文件安装前建议先读一遍。2.2 解压位置与权限别放进 Program FilesRaize 组件包和大多数 Delphi 控件一样源码与 .dpk 包文件需要保持路径稳定因为编译产生的 .dcu 会写入包目录或 Lib 目录之后 Library Path 引用的是绝对路径。一旦解压到 Program Files 这类系统保护目录文件写入会被 UAC 拦下编译时报拒绝访问这是新手最容易遇到的坑而且是那种看起来莫名其妙、实际原因很简单的坑。我一般把 Raize 放在 C:\Raize_6.1.1.12 或者 D:\Raize\6.1.1.12路径里不要带中文、不要带空格。带空格路径在少数批处理脚本里会被截断IDE 本身能处理但修正版自带的编译脚本不一定能处理。解压后大致是这样一个结构目录 / 文件作用Packages存放 .dpk 包文件运行期包与设计期包分开命名Lib编译输出的 .dcu 和运行时 bpl 默认落在这里Sources组件源码 .pas之后 Library Path 需要指向这里Demos示例工程验证阶段可以直接打开来测试不同修正版的目录名可能有细微差别以包内说明为准。这里补充一条经验解压完先不要打开 Delphi先把目录整个移动到位因为一旦编译过再移动整个目录之前的 dcu 和 bpl 路径全部作废又得重新编译一遍。2.3 备份现有 IDE 包配置给后悔药留个位置装 Raize 之前我强烈建议先备份当前 IDE 的包配置。Delphi 的已安装包清单不是存在某个普通配置文件里而是写在用户配置目录的 BDS\24.0 下的 Known IDE Packages 注册项中。装新组件包之前打开注册表编辑器把 BDS\24.0 下和 Packages 相关的项导出成 .reg 文件保存到磁盘万一装坏了可以直接导回去。这个操作是血泪经验换来的。有次我在一个 10.1 Berlin 环境里同时装了 Raize 两个版本IDE 每次启动都弹找不到 bpl组件面板也坏了最后就是靠这份备份导回去才恢复。备份文件很小几十 KB但能省下半天排查时间。导出时注意把 HKCU 和 HKLM 两处的 BDS\24.0 都导出不同组件包注册的位置不完全一样。2.4 看修正版自带的批处理脚本在做什么很多修正版会带一个 Install.bat 或 Build.bat。不要直接双击运行先打开看内容。我见过的脚本里有些会先清理当前已编译的 dcu 文件再调用命令行编译器重新编译如果此时 Delphi IDE 正开着并且占用了某些 bpl 文件脚本会在清理或复制阶段中途失败报文件被占用。正确顺序是先关闭 Delphi IDE再单独运行脚本或者干脆不用脚本完全参照脚本里的编译顺序在 IDE 里手动编译。混用两种方式是翻车高发区脚本编到一半切到 IDE 手动编译经常留下编译一半的 dcu后面装设计期包时各种报错都来了。确定走哪条路之后就一条路走到底。3. 编译与安装先运行期包后设计期包3.1 运行期包与设计期包的分工要先搞清楚Raize 的包文件命名规则不带 D 后缀的是运行期包负责提供组件实现代码程序编译和发布时依赖它带 D 后缀的是设计期包负责把组件图标注册到 IDE 的组件面板只在 IDE 里加载。安装顺序因此是固定的先编译运行期包让 bpl 和 dcu 落地再打开设计期包点击 Install。顺序反了设计期包找不到运行期包里的类编译时直接报找不到 RzButton 之类的引用。如果无法从文件名分辨哪个是设计期包就打开 .dpk 看 Requires 子句。设计期包几乎都会在 Requires 列表里引用刚刚编译好的运行期包而运行期包的 Requires 里只有 VCL 和 RTL 这些 IDE 自带包。这个判断方法对所有 Delphi 第三方组件通用不只限于 Raize。3.2 在 IDE 里编译运行期包操作按下面四步走关闭可能占用 bpl 的其他 Delphi 工程打开 Delphi 10.1 Berlin。File Open定位到 Packages 目录选择不带 D 后缀的 .dpk 文件。在 Project Manager 里右键该包节点选择 Compile。编译完成后确认 Messages 窗口没有 E2003 或类似报错。编译前我习惯先打开 Project Options把输出目录指到包目录下的 Lib 文件夹。这样做的目的是让 dcu 位置可控之后配置 Library Path 时不用写一堆分散的路径排查问题也容易。有些修正版默认把输出指到了系统 BPL 目录这种也能用但换机器迁移时路径容易对不上。编译成功的标志是 Messages 窗口出现 Build OK 或 Done 字样。这一步千万不要顺手点 Install运行期包没有 Install 选项强行安装会报“Cannot install a runtime package”到时候还得回头查是不是点错了文件。3.3 安装设计期包并检查组件面板运行期包编译通过后的下一步File Open 打开那个带 D 后缀的 .dpk 文件。在 Project Manager 里右键包节点选择 Install。弹出安装成功的提示后组件面板应该出现一个名为 Raize 的页签页签里是一整套 Rz 开头的组件。如果组件面板没出现 Raize 页签先不要急着判定失败。有时候要新建或切换一个 Form 才会刷新组件的显示有时候是 IDE 缓存了组件列表重启 IDE 后页签才出现。这就是为什么验证一定要放在最后统一做而不是装到一半就下结论。我还遇到过页签出现了、组件却拖不出来的情况这种多半和后面要说的 Library Path 配置有关。3.4 脚本安装也是这条路只是自动化了决定用批处理脚本安装的话逻辑和手动是一样的。脚本一般会依次完成清理旧 dcu、编译运行期包、复制 bpl 到系统目录。但脚本很难替你做设计期包的 Install 动作因为这个操作依赖 Delphi IDE 的交互环境批处理无法稳定模拟。所以脚本跑完后大概率还是需要手动回到 IDE 打开设计期包点一次 Install这一步省不了。如果你在 32 位环境下安装不要被网上一些“64 位包”的说法干扰。Delphi 10.1 Berlin 的 IDE 本身是 32 位程序组件包也是面向 IDE 加载的不存在 64 位 IDE 安装包这种东西。出现“64 位”字样的说明多半指的是运行时库面向 Win64 目标平台的编译支持跟 IDE 安装没有关系。4. 环境配置Library Path 与运行时包缺一不可4.1 Library Path不加就是 File Not Found安装完成后新建项目组件面板里能看到组件拖到 Form 上也没问题但一编译就报 File not found 或者找不到 dcu这是 Library Path 没配。设计期包的 Installation 只解决 IDE 面板显示不负责给项目编译提供源码路径这是两个完全独立的配置。打开 Tools Options Delphi Options Library在 Library path 里追加两个路径Raize 的 Sources 目录和 Lib 目录中间用分号分隔。加 Sources 是因为某些组件在同一工程里既有编译期源码引用又有设计期表现加 Lib 是为了让编译器能找到已经编译好的 .dcu 文件。路径写好后点输入框右侧的省略号按钮确认路径真实存在然后再重启一次 IDE。这里有个细节容易被忽略Library Path 配置完成后IDE 的代码补全有时不会立刻刷新。重启 IDE 是最稳妥的方式不要省这一步。我见过有人在 Library Path 里写了一个不存在的路径IDE 编译时静默跳过结果还是报找不到单元反过来怀疑包没装好来回折腾半天。4.2 运行时包的选择压进 exe 还是动态引用Raize 运行期包有两种使用方式。第一种是静态链接在 Project Options 里不勾选 Use runtime packages组件代码直接编译进 exe部署时不需要额外带 bpl 文件。第二种是动态引用勾选 Use runtime packages并在包列表里加入 Raize 对应的 bpl 名称exe 体积会小一些但部署时必须把对应 bpl 一起带上。维护老项目时我一般选静态链接。Raize 的 bpl 依赖 VCL 运行时包如果系统里同时存在多个版本或其他组件包的 bpl动态引用场景下经常出现启动时弹找不到 bpl 的错误而这个错误对话框一闪而过用户截图都截不到排查效率极低。静态链接把一切压进 exe部署现场少一个变量。但如果项目本身已经启用了 runtime packages那就不要为了 Raize 单独改成静态整个项目统一用动态最稳混用会在运行时出现类重复注册的报错那个报错文本加长都看不懂。顺着报错看下去会发现是同一份类被加载了两次根源就是混用。4.3 版本残留把旧的 dcu 和 bpl 清干净再装老项目之前用过 Raize 5.x这次装完 6.1.1.12 以后编译旧代码报类型不匹配大概率是旧 dcu 残留。Delphi 编译时对 dcu 的查找顺序是 Library Path 优先如果旧版 dcu 还躺在某个目录里编译器会优先命中旧文件新装的和旧的打架报出来全是类型转换错误。清理按这个顺序来到 Raize 安装目录下搜索 *.dcu 和 *.bpl确认没有旧版本残留文件。到用户目录下 BDS\24.0 对应的 bpl 缓存目录搜索 Rz*.bpl有就删除。在 IDE 的 Component Install Packages 里看 Raize 条目是否存在两个版本先移除旧版再装新版。确认干净后重新编译一次运行期包再安装一次设计期包。清理顺序不要颠倒。先删文件、后动注册项否则 IDE 启动时还会尝试加载已经被删掉的包报错比原来还难看。这一步做完再回去编译旧项目类型不匹配的报错通常会消失。如果还没消失去工程的搜索路径里检查一遍看有没有单独写死指向旧版 dcu 的路径那种手动加的路径会绕过全局 Library Path属于隐藏雷。5. 安装排错五个反复出现的坑5.1 编译运行期包报 E2003现象点 Compile 后 Messages 窗口弹出 E2003行号指向 Raize 源码里某个文件代码看起来却没问题。原因多数情况是源码所在路径里有中文或空格少数情况是 IDE 缓存了上一个版本的 dcu导致新旧源码混编。E2003 这类序号错误经常被误判为源码损坏实际上源码好好的是环境问题。解决把整个 Raize 目录复制到一个纯英文、无空格的路径下重新编译并在编译前删除 Lib 目录下所有 dcu 文件。这个动作我在不同机器上做过至少五次每次都能解决。5.2 设计期包 Install 按钮是灰的现象打开带 D 后缀的 .dpk 后右键菜单里的 Install 是禁用状态点不下去。原因打开错了包文件某些修正版把运行期包的文件名也加了 D 后缀或者当前 IDE 里已经加载了这个包重复加载状态下 Install 会被禁用。解决对比 Requires 子句确认它依赖了刚编译好的运行期包。然后到 Component Install Packages 里搜索 Raize如果已经存在就先 Remove 再回来重新 Install。这个问题最容易发生在安装脚本跑过一半之后所以前面强调安装方式要二选一。5.3 有 Raize 页签但组件是空白的现象IDE 重启后组件面板出现 Raize 页签展开后没有组件图标或者图标是一个空方块。原因设计期包注册成功了但包依赖的某个 bpl 不能被 IDE 找到。常见于运行期包编译后没有复制到系统 BPL 目录IDE 只加载到了设计期包设计期包加载过程中找不到依赖组件图标自然出不来。解决把 Lib 目录下生成的 Rz*.bpl 全部复制到系统 BPL 目录重启 IDE。如果是高分屏下图标空白但组件能拖那是 DPI 缩放问题尝试关闭 IDE 的 DPI 缩放或者确认装的是修正版里包含高 DPI 修复的那一份。5.4 旧项目编译通过但 Form 打开空白现象编译没有任何报错运行时整个 Form 是空白的或者 IDE 设计界面提示 Class RzButton not found。原因项目里的 dfm 文件引用的是 Raize 5.x 的类名而 IDE 里只注册了 6.1.1.12dfm 里旧类名在设计期找不到对应的已注册类。这个现象在老项目里非常普遍不是 Raize 6 装坏了是新旧版本的类名变更没有被同步。解决用记事本打开 Form 的 .dfm 文件检查 Rz 开头的对象类名把旧版类名替换为安装包里实际提供的类名。dfm 文件默认是文本格式直接查找替换即可如果项目里 dfm 被配置成二进制格式先转成文本再处理。替换前记得备份文件这一步相当于给旧项目打补丁改错了可以还原。5.5 IDE 启动时报 Cant load package现象IDE 一启动就弹错误框提示某个 Rz*.bpl 无法加载附带类似“%1 is not a valid Win32 application”或“不是有效的 Win32 应用程序”的内容。原因这个报错基本可以断定包是在其他 Delphi 版本下编译的。误装了其他版本对应编译的 bpl会让 IDE 在启动阶段尝试加载时就挂掉连进入主界面的机会都没有。解决确认安装的是对应 10.1 Berlin 的版本不要混装 10.2 或更高版本的包。如果已经误装去 IDE 用户配置目录 BDS\24.0 下的已知包注册项找到对应 Rz*.bpl 条目并删掉然后在安装目录里把不匹配的 bpl 也清掉重新编译运行期包后再装设计期包。操作时先关 IDE改完再启动。这个问题每次都有人踩原因就是下载时没核对路径里的 DX10_1 标记顺手把别的版本也装进去了。6. 装完怎么验证新建一个 VCL 工程拖上 Rz 组件跑一遍验证不是最后才做而是每次装完立刻做。装完 Raize 6.1.1.12 后我固定走四步四步全过才算这套环境真的能用。第一步新建一个 VCL Forms Application在 Project Options 里确认 Target Platform 是 32 位 Windows并取消勾选 Use runtime packages避免验证过程混入 bpl 路径问题。第二步打开组件面板里的 Raize 页签依次拖 TRzButton、TRzEdit、TRzMemo 到 Form 上先看页签组件是否能正常落位。第三步为按钮写一句代码调用组件procedure TForm1.RzButton1Click(Sender: TObject); begin // 向 RzMemo 写入当前时间用来确认运行期包里的类真的可用 RzMemo1.Lines.Add(FormatDateTime(yyyy-mm-dd hh:nn:ss, Now)); end;这里用了 FormatDateTime属于 RTL 标准函数不依赖 Raize真正要验证的是 RzMemo 和 RzButton 这两个类是否能正常实例化、是否能正确响应事件。第四步按 F9 编译运行点击按钮窗口上的 RzMemo 中出现一行时间戳说明运行期包和编译链都正常。如果 RzMemo 显示空白优先查 Library Path 里两个目录的顺序和存在性。顺带提醒验证工程不要直接拿老项目试。老项目里残留的旧 Raize 引用会让验证结果失真万一报错也分不清是新装环境的问题还是老项目自身的问题。每次装完任何 Delphi 控件我都强制自己新建一个空工程拖一套组件跑一遍确认之后再开始真正的迁移。这个习惯救过我很多次希望帮到你。本文还有配套的精品资源点击获取
阅读完成 · 觉得有帮助?
咨询建站