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

Delphi XE10.2 安装 TMS Component Pack v8.3.4.0 详细指南

Delphi XE10.2 安装 TMS Component Pack v8.3.4.0 详细指南 ★ FEATURED ARTICLE
简介本资源为Delphi XE10.2 Tokyo平台专用的TMS Component Pack v8.3.4.0完整开发组件包面向中高级Windows桌面及跨平台Android/iOSDelphi开发者解决UI构建、数据绑定、图表可视化、数据库导航等高频开发需求。压缩包含2000个文件主体为1673个Pascal源码.pas、488个窗体定义.dfm、384个工程文件.dpr/.dproj、1039个编译单元.dcu及大量资源文件.res/.bmp/.png覆盖VCL与FireMonkey双框架适配支持深度定制与源码级调试。资源大小103.4MB结构清晰内置compilexe10.bat等自动化编译脚本可一键适配XE10.2环境并快速验证组件兼容性。目前已有1206人学习下载用户可直接复用TAdvGrid、TMS FlexGrid、TMS Charts、TMS DB Navigator等成熟控件获取完整源码、多语言资源含English/Spanish/French/German等.aff词典文件及配套示例工程显著提升界面开发效率与项目交付质量。1. Delphi 控件安装翻车现场TMS Component Pack v8.3.4.0 XE10.2 不是“复制粘贴就能用”而是“路径错一位、注册报三行、设计器全灰”的玄学现场你刚在某高校实验室接手一个遗留的 Delphi 桌面系统维护任务需求是给老界面加个带 Excel 导出的表格控件——查了一圈TMS Component Pack 是业内公认最稳的商业组件集之一尤其对 XE10.2 这个仍在大量产线项目中服役的版本支持成熟。但别急着点下载就开干v8.3.4.0 这个看似普通的补丁号实则是 TMS 官方为 XE10.2 专门打的“兼容性补丁包”它不兼容 XE10.1 或 XE10.3也不向下兼容 D10.1即 Seattle更不会自动识别你 IDE 的 BPL 输出路径。我亲眼见过 A 同学把包解压到C:\Program Files\Embarcadero\Studio\19.0\下结果 IDE 启动时直接弹窗报“找不到 TMSAdvGrid.bpl”而真正该放的位置其实是C:\Users\Public\Documents\Embarcadero\Studio\19.0\Bpl\——注意是Public\Documents不是Program Files也不是My Documents。这不是路径洁癖是 Delphi IDE 加载 BPL 的硬编码逻辑。这套环境适合正在维护/升级 XE10.2 项目的开发者、需要快速集成高级 UI 控件如带主题切换的 TreeView、支持 PDF 导出的 RichView的桌面应用工程师以及被“组件注册失败”卡住半天、反复重装 IDE 的崩溃边缘人。2. 环境确认与安装包结构解析先看清 v8.3.4.0 里到底塞了什么再决定往哪塞TMS Component Pack v8.3.4.0 并非单个安装程序而是一套按功能模块拆分的源码编译库混合包。它不提供一键式 Setup.exe官方刻意保留手动集成流程目的是让开发者明确知道每个 BPL 文件的依赖链和 IDE 版本绑定关系。你拿到的压缩包解压后典型结构如下以 Windows 64 位 XE10.2 为例TMS_Component_Pack_v8.3.4.0_XE10.2\ ├── Source\ # 所有控件的 Pascal 源码.pas含完整注释和示例 ├── Lib\ # 编译好的二进制库按平台/IDE 版本细分 │ └── Win32\ # 注意XE10.2 默认生成 Win32 应用Win64 需额外配置 │ └── 19.0\ # Embarcadero 内部版本号19.0 XE10.2不是 10.2 │ ├── dcltms*.bpl # 设计时包Design-time BPL必须注册到 IDE │ ├── tms*.bpl # 运行时包Runtime BPL供你的 EXE 动态链接 │ └── tms*.dcu # 已编译单元.dcu供无源码部署时引用 ├── Demos\ # 可直接打开的 .dpr 示例工程覆盖 90% 常用场景 ├── Docs\ # CHM 格式帮助文档含 API 索引和属性速查表 └── Install.bat # 官方提供的批处理脚本但默认不执行注册仅拷贝提示19.0是关键标识。XE10.2 的内部代号是19.0XE10.1 是18.0XE10.3 是20.0。所有路径、注册表项、BPL 文件名中的190或19.0都不可替换为10.2否则 IDE 将完全无视该包。2.1 确认本地 XE10.2 的真实安装路径与版本号别信你记的路径也别信注册表里模糊的 “Delphi 10.2”必须用 IDE 自身输出的权威信息启动 XE10.2 IDE确保是完整版非 Community Edition菜单栏 →Help → About在弹出窗口中找到Version Info区域确认显示为Embarcadero® RAD Studio 10.2 Version 25.0.29807.2784 (Update 2) Platform: Windows 64-bit注意下方小字会写Build 19.0.29807.2784—— 这里的19.0就是你所有后续操作的黄金坐标。如果显示18.0或20.0说明你打开的不是 XE10.2立刻退出并检查快捷方式指向。2.2 解压包到安全位置为什么不能直接解压到 Program FilesProgram Files目录在 Windows 10/11 上默认启用 UAC 保护IDE 在注册设计时包dcltms*.bpl时需要向该目录写入.tds类型库描述文件而普通用户权限下会被拦截导致注册“成功”但设计器中控件仍灰色。正确做法是# 推荐路径无空格、无权限限制、符合 Delphi 社区惯例 C:\TMS\v8.3.4.0_XE10.2\ # 或使用用户文档目录更稳妥 C:\Users\%USERNAME%\Documents\TMS\v8.3.4.0_XE10.2\逻辑说明Delphi IDE 在加载设计时包时会优先搜索$(BDSCOMMONDIR)\Components\和$(BDSCOMMONDIR)\Bpl\而$(BDSCOMMONDIR)默认指向C:\Users\Public\Documents\Embarcadero\Studio\19.0\。将源码和库放在自定义路径是为了避免污染系统目录且便于多版本共存例如同时维护 XE10.2 和 XE11 的项目。2.3 关键路径对照表XE10.2 的四个核心目录必须对齐路径类型标准路径XE10.2用途是否必须存在IDE 公共目录C:\Users\Public\Documents\Embarcadero\Studio\19.0\存放所有 IDE 共享资源BPL、DCU、模板✅ 必须存在若不存在需手动创建设计时包目录C:\Users\Public\Documents\Embarcadero\Studio\19.0\Bpl\放置dcltms*.bplIDE 启动时自动加载✅ 必须存在运行时包目录C:\Users\Public\Documents\Embarcadero\Studio\19.0\Bpl\放置tms*.bpl你的 EXE 运行时动态链接✅ 必须存在可与设计时包同目录源码搜索路径C:\Users\Public\Documents\Embarcadero\Studio\19.0\Source\IDE 编译时查找.pas的默认路径⚠️ 可选但建议创建并放入Source\参数说明$(BDSCOMMONDIR)是 Delphi 内置宏IDE 所有版本均识别。不要试图修改注册表去硬编码这个路径IDE 启动时会严格校验其合法性。若你发现Public\Documents\Embarcadero\Studio\19.0\不存在请立即用管理员权限新建该完整路径注意19.0是文件夹名不是版本号字符串。3. 分步安装从解压到 IDE 注册每一步都带验证点安装不是“解压→双击注册→完事”而是三段式流水线准备环境 → 注册设计时包 → 配置项目引用。漏掉任一环节设计器就变灰色编译就报Unit not found。3.1 准备环境创建标准目录结构并拷贝核心文件打开命令提示符无需管理员权限执行以下步骤请逐行复制注意路径中的19.0# 1. 创建 IDE 公共目录结构若不存在 mkdir C:\Users\Public\Documents\Embarcadero\Studio\19.0\Bpl mkdir C:\Users\Public\Documents\Embarcadero\Studio\19.0\Source # 2. 假设你已将 TMS 包解压到 C:\TMS\v8.3.4.0_XE10.2\ # 将设计时包dcltms*.bpl拷贝到 Bpl 目录 copy C:\TMS\v8.3.4.0_XE10.2\Lib\Win32\19.0\dcltms*.bpl C:\Users\Public\Documents\Embarcadero\Studio\19.0\Bpl\ # 3. 将运行时包tms*.bpl也拷贝过去同一目录即可 copy C:\TMS\v8.3.4.0_XE10.2\Lib\Win32\19.0\tms*.bpl C:\Users\Public\Documents\Embarcadero\Studio\19.0\Bpl\ # 4. 将源码.pas拷贝到 Source 目录供编译时查找 xcopy C:\TMS\v8.3.4.0_XE10.2\Source\* C:\Users\Public\Documents\Embarcadero\Studio\19.0\Source\ /E /I /Y逻辑说明/E表示复制所有子目录即使为空/I表示如果目标不存在则假定为目录/Y表示覆盖时不提示。这四步完成后Bpl\目录下应有约 30 个.bpl文件如dcltmsadvgrid190.bpl,tmsadvgrid190.bplSource\下应有TMSAdvGrid.pas,TMSFlatControls.pas等数百个文件。这是 IDE 能识别组件的基础。3.2 注册设计时包用 IDE 自带工具而非第三方注册器TMS 官方强烈反对使用regsvr32或第三方 BPL 注册工具因为设计时包需要与 IDE 的 VCL 架构深度集成必须通过 IDE 的原生机制。正确流程关闭所有 XE10.2 IDE 实例重新启动 XE10.2 IDE菜单栏 →Component → Install Packages…在弹出窗口中点击Add…浏览到C:\Users\Public\Documents\Embarcadero\Studio\19.0\Bpl\多选所有dcltms*.bpl文件不要选tms*.bpl那是运行时包点击Open然后点击OK。参数说明IDE 会逐个加载这些.bpl并在状态栏显示 “Loading dcltmsadvgrid190.bpl…”。若某一个加载失败IDE 会弹窗报错如 “Invalid package”此时立即停止不要点 OK。常见失败原因是 BPL 版本与 IDE 不匹配比如误用了 XE10.3 的包或文件损坏。成功后Install Packages窗口的列表中会出现所有dcltms*条目且左侧复选框为勾选状态。3.3 验证设计器是否激活看 Palette 和 Object Inspector注册完成后不要急着建新项目先做两件事检查 Palette组件面板查看右下角组件面板应出现多个新页签如TMS VCL UI、TMS VCL Grids、TMS VCL Editors。展开TMS VCL UI里面应有TMSAdvPanel、TMSFlatButton等控件图标。如果页签存在但图标全为灰色说明注册未生效如果页签根本没出现说明dcltms*.bpl未被加载。拖一个控件到空白窗体检查 Object Inspector对象检查器拖TMSAdvGrid到窗体选中它在 Object Inspector 中应看到大量以Adv开头的属性如AdvOptions、AdvAppearance。如果只看到Name、Tag等基础属性说明.dcu或源码路径未生效IDE 编译时找不到类定义。验证技巧右键点击 Palette 页签 →Customize…→ 确保TMS VCL *所有页签的复选框已勾选。这是很多人忽略的“最后开关”。4. 项目级配置让你的工程能编译、能运行、能调试注册完设计时包只是让 IDE 认识组件要让你的.dpr工程真正调用 TMS 控件还需在项目层面配置三个关键路径。这步漏掉编译时必报F2063 Could not find unit TMSAdvGrid。4.1 配置项目搜索路径Search Path告诉编译器去哪找 .pas 和 .dcu在 IDE 中打开你的目标工程.dproj菜单栏 →Project → Options…左侧树形菜单展开 →Delphi Compiler → Search Path在右侧Search path输入框中追加以下两个路径用英文分号;分隔C:\Users\Public\Documents\Embarcadero\Studio\19.0\Source;C:\TMS\v8.3.4.0_XE10.2\Lib\Win32\19.0逻辑说明第一个路径指向源码.pas编译器优先在此查找第二个路径指向已编译单元.dcu当源码不可用时作为备选。顺序很重要若你把.dcu路径放前面而.dcu版本过旧编译器就不会去读新版.pas导致行为不一致。务必确认路径中19.0与你的 IDE 版本严格一致。4.2 配置运行时包依赖Runtime Packages避免 BPL 找不到的 DLL HellXE10.2 默认使用静态链接即把所有代码编译进 EXE但 TMS 组件庞大静态链接会导致 EXE 体积暴增50MB且无法热更新。推荐启用运行时包Project → Options… → Packages → Runtime Packages勾选Link with runtime packages在Runtime packages输入框中追加以下运行时包名逗号分隔不带扩展名tmsadvgrid190,tmsadvstringgrid190,tmsflatcontrols190,tmspack190参数说明包名必须与Bpl\目录下的.bpl文件名前缀完全一致tmsadvgrid190.bpl→tmsadvgrid190。IDE 编译时会自动生成requires子句并在 EXE 启动时动态加载这些.bpl。若你只用TMSAdvGrid只需填tmsadvgrid190若还用了TMSFlatButton则必须加上tmsflatcontrols190。漏掉任一依赖运行时会弹窗“The procedure entry point … could not be located in the dynamic link library tmsadvgrid190.bpl”。4.3 部署时的 BPL 分发策略EXE 同目录 or 系统 PATH你的 EXE 运行时需要.bpl但客户机器上没有C:\Users\Public\Documents\…。解决方案只有两个方案 A推荐BPL 与 EXE 同目录将C:\Users\Public\Documents\Embarcadero\Studio\19.0\Bpl\下所有tms*.bpl复制到你的工程Win32\Debug\或Win32\Release\目录下。IDE 默认会把 EXE 生成到此处客户双击即可运行。方案 B企业级添加到系统 PATH在安装程序中执行setx PATH %PATH%;C:\YourApp\Bpl。但需管理员权限且易引发冲突不推荐。血泪经验某公司发布安装包时忘了打包tmspack190.bpl它是所有 TMS 控件的公共基础包导致客户启动后主窗体一片空白日志只有一行Access violation at address...。后来发现是TMSBaseControl类构造失败。从此我养成了一个习惯发布前用Dependency Walker扫描 EXE确认所有tms*.bpl均被声明为依赖。5. 避坑指南TMS Component Pack v8.3.4.0 XE10.2 的五大经典翻车点安装过程看似线性实则布满隐性陷阱。以下是我在某跨平台系统迁移中踩过的、被问得最多的问题按发生频率排序5.1 现象IDE 启动后 Palette 中 TMS 页签存在但所有控件图标灰色拖拽无反应原因dcltms*.bpl已加载但对应的tms*.bpl运行时包缺失或版本不匹配。设计时包依赖运行时包的导出符号若tmsadvgrid190.bpl未就位dcltmsadvgrid190.bpl无法完成初始化。解决确认C:\Users\Public\Documents\Embarcadero\Studio\19.0\Bpl\下存在tmsadvgrid190.bpl且文件大小 2MB小于 1MB 很可能是损坏包。用记事本打开该.bpl开头应有MZ字样Windows PE 文件头。5.2 现象编译时报错F2063 Could not find unit TMSAdvGrid但 Object Inspector 中该控件属性正常显示原因项目Search Path中未包含源码路径或路径中19.0写成了10.2。IDE 设计器用的是注册时加载的.bpl而编译器用的是Search Path查找.pas/.dcu二者路径来源不同。解决在Project → Options → Delphi Compiler → Search Path中删除所有含10.2的路径只保留19.0。然后点击右下角Restore Defaults重置再手动添加正确路径。5.3 现象运行时弹窗报The ordinal 12345 could not be located in tmsadvgrid190.bpl原因tmsadvgrid190.bpl被其他版本如 v8.2.0 或 XE10.3 的 v8.4.0覆盖。.bpl是二进制文件不同版本间导出函数序号ordinal不兼容。解决用sigcheck -a C:\Users\Public\Documents\Embarcadero\Studio\19.0\Bpl\tmsadvgrid190.bplSysinternals 工具查看文件签名和时间戳对比C:\TMS\v8.3.4.0_XE10.2\Lib\Win32\19.0\下原始文件的 MD5不一致则重新拷贝。5.4 现象在高 DPI 显示器如 4K 屏上TMS 控件文字模糊、布局错乱原因XE10.2 默认未启用 Per-Monitor DPI Awareness而 TMS v8.3.4.0 的渲染逻辑依赖系统 DPI 设置。解决在项目Project → Options → Application → Manifest file中勾选Enable high DPI awareness或手动编辑.manifest文件添加dpiAwaretrue/PM/dpiAware。重启 IDE 后重新编译。5.5 现象安装后 IDE 启动变慢甚至卡死在 Splash Screen原因Install Packages中勾选了过多dcltms*.bpl尤其是dcltmswebbrowser190.bpl基于 IE 内核在某些 Windows 10 版本上会触发 COM 初始化阻塞。解决进入Component → Install Packages…取消勾选暂不用的包如dcltmswebbrowser190、dcltmscloud190只保留当前项目必需的如dcltmsadvgrid190、dcltmsflatcontrols190。IDE 启动速度可从 45 秒降至 8 秒。注意以上所有问题90% 都能在Event LogView → Tool Windows → Event Log中找到线索。IDE 加载失败时这里会记录Error loading package ...的详细堆栈比弹窗信息更有价值。6. 验证跑通用一个 5 行代码的 Demo 工程确认从设计、编译到运行全链路无断点装完不是终点验证才是闭环。下面这个极简 Demo能在 2 分钟内跑通全部环节且暴露 95% 的配置错误。6.1 创建最小可验证工程MVEFile → New → VCL Forms Application - Delphi保存工程到新文件夹如C:\TMS_Test\在窗体上拖一个TMSAdvGrid来自TMS VCL Grids页签双击窗体进入OnCreate事件粘贴以下代码procedure TForm1.FormCreate(Sender: TObject); begin // 1. 初始化网格验证运行时包加载 AdvGrid1.RowCount : 3; AdvGrid1.ColCount : 2; // 2. 填充数据验证单元引用正确 AdvGrid1.Cells[0, 0] : Name; AdvGrid1.Cells[1, 0] : Age; AdvGrid1.Cells[0, 1] : Alice; AdvGrid1.Cells[1, 1] : 28; // 3. 启用主题验证 TMS 主题引擎 AdvGrid1.AdvAppearance.HeaderFont.Color : clRed; end;Project → Options → Delphi Compiler → Search Path添加C:\Users\Public\Documents\Embarcadero\Studio\19.0\Source;C:\TMS\v8.3.4.0_XE10.2\Lib\Win32\19.0Project → Options → Packages → Runtime Packages勾选Link with runtime packages填入tmsadvgrid190,tmspack1906.2 编译 运行三阶段验证表阶段预期现象失败含义快速定位方法编译CtrlF9输出窗口显示Success无F2063错误Search Path错误或源码缺失查看Output窗口末尾找Fatal: F2063行链接Build输出Linking Project1.dproj无ILINK32错误运行时包名拼写错误或缺失查看Messages窗口找Error: Unresolved external运行F9窗体弹出网格显示两列三行标题行红色字体tms*.bpl未就位或 DPI 问题启动后立即看Event Log找Exception或LoadLibrary失败关键技巧运行前在 IDE 菜单栏右上角点击Toggle Form/Unit或 CtrlTab确保当前焦点在.pas文件上而不是.dfm。否则 F9 会尝试编译.dfm报错Cannot create form。6.3 进阶验证检查 BPL 加载日志黑匣子取证IDE 不会告诉你tmsadvgrid190.bpl是何时、以何种方式加载的。但你可以用 Windows 自带工具抓取下载ProcMonMicrosoft Sysinternals过滤条件Process Nameisbds.exeOperationisLoad Image启动 IDE观察Path列中是否出现tmsadvgrid190.bpl若出现NAME NOT FOUND说明路径错误若出现SUCCESS但后续报错说明 BPL 内部初始化失败。这招曾帮我揪出一个隐藏 Bug某次更新后tmspack190.bpl被误删但tmsadvgrid190.bpl加载成功直到运行时调用TMSBaseControl.Create才崩溃——ProcMon日志里清晰显示tmspack190.bpl的NAME NOT FOUND而其他包全是SUCCESS。从那以后我每次给新同事配环境都强制走一遍这个 5 行 Demo先敲代码再配路径最后看 ProcMon 日志。不是为了炫技是让每一个“已安装”都变成可验证的“已跑通”。希望帮到你。本文还有配套的精品资源点击获取
阅读完成 · 觉得有帮助?
咨询建站