# Delphi 11 Alexandria 升级指南 ## 一、升级概述 ### 1.1 当前项目状态 - **项目名称**: MainWin - **当前IDE版本**: ~Delphi 10.4/10.5 (ProjectVersion 19.5) - **目标IDE版本**: Delphi 11 Alexandria (Version 28.0.48361.3236) - **框架类型**: FireMonkey (FMX) - **目标平台**: Win64 (主要), Win32 ### 1.2 升级目标 - 迁移到最新IDE版本 - 获得更好的性能和稳定性 - 利用新特性和改进 - 为未来升级到Delphi 12做好准备 ## 二、升级前的准备工作 ### 2.1 系统要求检查 **Delphi 11 Alexandria 系统要求**: - **操作系统**: Windows 10 (64-bit) 或 Windows 11 (64-bit) - **处理器**: Intel Core i5 或更高 - **内存**: 至少 16GB RAM (推荐 32GB) - **磁盘空间**: 至少 30GB 可用空间 - **显示器**: 1920x1080 或更高分辨率 ### 2.2 备份项目 **必须备份的内容**: 1. 整个项目源代码目录 2. 第三方组件库 3. 项目配置文件 4. 编译输出设置 **备份命令**: ```powershell # 备份整个项目 Copy-Item -Path "d:\word\dyp\client-dyp" -Destination "d:\word\dyp\client-dyp_backup_$(Get-Date -Format 'yyyyMMdd')" -Recurse ``` ### 2.3 收集依赖信息 **需要确认的组件**: 1. **第三方组件**: - EhLib (数据库控件库) - SPComm (串口通信组件 - 1997年版本) - TeeChart/TeeUI (图表组件) 2. **Delphi内置组件包**: - FireDAC - RESTComponents - Indy (网络通信) - EMS/FireMonkey ## 三、升级步骤 ### 3.1 第一阶段:准备阶段 #### 步骤1:安装 Delphi 11 1. **下载Delphi 11**: - 访问 Embarcadero 官网 - 下载 Delphi 11 Alexandria Community Edition 或更高版本 - 或使用现有的 Delphi 11 许可证 2. **安装选项**: ``` ☑ Delphi 11 Alexandria ☑ FireMonkey IDE ☑ FMX Linux SDK ☑ Windows Platform SDK ☑ Android SDK ☑ iOS SDK ``` 3. **安装位置**: - 建议安装到: `C:\Program Files\Embarcadero\Studio\22.0` - 或现有 Delphi 11 安装目录 #### 步骤2:检查第三方组件 1. **确认组件版本**: - EhLib: 需要 Delphi 11 兼容版本 (EhLib 12.0+) - SPComm: 检查是否有更新版本 - TeeChart: 需要 Delphi 11 兼容版本 2. **更新组件**: - 下载最新版本的第三方组件 - 为 Delphi 11 重新安装组件包 ### 3.2 第二阶段:项目迁移 #### 步骤3:打开项目 1. **启动 Delphi 11** 2. **打开项目文件**: - File → Open Project - 选择 `MainWin.dproj` 文件 3. **IDE会自动检测到旧版本项目** 4. **点击 "Upgrade" 按钮** #### 步骤4:处理升级向导 Delphi 11 会自动处理以下内容: - 项目版本号更新 - 平台配置迁移 - 编译器选项更新 - 必要的文件格式转换 #### 步骤5:更新项目文件 **ProjectVersion 映射**: | 旧版本 (ProjectVersion) | 新版本 | |------------------------|--------| | 19.5 | 22.0 (Delphi 11) | **需要手动更新的配置**: 1. **平台SDK版本**: - 更新 Windows SDK 到最新版本 - 更新 Android SDK 版本 2. **编译器选项**: - 检查并优化编译器设置 - 更新优化级别 ### 3.3 第三阶段:代码适配 #### 步骤6:处理编译器警告和错误 **常见升级问题及解决方案**: 1. **单元引用问题**: ```delphi // 如果遇到单元找不到的错误,检查并更新uses子句 uses System.SysUtils, System.JSON, // Delphi 10.4+ 中移动到 System.JSON // ... ``` 2. **FMX类型变更**: ```delphi // 某些FMX控件属性可能有变化 // 检查 FormStyle vs FormFactor ``` 3. **FireDAC变更**: ```delphi // 检查 FireDAC 连接配置 // 更新 TFDConnection 参数 ``` 4. **RESTClient变更**: ```delphi // Delphi 11 中 RESTClient 有改进 // 检查并更新网络请求代码 ``` #### 步骤7:处理第三方组件 1. **重新安装组件**: - 打开 Delphi 11 的组件安装包 - 重新编译并安装所有第三方组件 2. **更新组件引用**: - 重新配置 Search Path - 更新 Library Path - 更新 Browsing Path 3. **处理兼容性问题**: - 如果组件不兼容,查找替代方案 - 或等待组件更新 ### 3.4 第四阶段:测试验证 #### 步骤8:编译项目 1. **清理项目**: ``` Project → Clean ``` 2. **重新编译**: ``` Project → Compile (Ctrl + F9) ``` 3. **处理编译错误**: - 逐一处理所有编译错误 - 记录需要修改的代码 #### 步骤9:运行测试 1. **基础功能测试**: - 启动应用程序 - 检查主界面加载 - 测试基本操作 2. **核心功能测试**: - 测试数据库连接 - 测试网络通信 - 测试PLC通信 - 测试串口通信 3. **特定功能测试**: - 物料追踪功能 - 工单管理功能 - 报工功能 ## 四、已知问题和解决方案 ### 4.1 SPComm 组件问题 **问题**: SPComm 是 1997 年的组件,可能与 Delphi 11 不兼容 **解决方案**: 1. **方案一 - 使用替代组件**: - TComPort (第三方串口组件) - AsyncFree (现代串口库) 2. **方案二 - 自行更新SPComm**: - 重新编译 SPComm 源代码 - 更新 API 调用以兼容新版本 Windows ### 4.2 RESTClient 问题 **问题**: 旧版 RESTClient 代码可能需要调整 **解决方案**: ```delphi // 旧代码可能需要更新 // Delphi 11 中更好的错误处理 try RESTRequest.Execute; except on E: ERESTException do // 处理网络错误 end; ``` ### 4.3 FireDAC 问题 **问题**: 数据库连接配置可能有变化 **解决方案**: ```delphi // 更新 FireDAC 连接参数 FDConnection1.Params.Text := 'Server=192.168.5.9;' + 'Database=mydb;' + 'User_Name=sa;' + 'Password=mypassword;' + 'DriverID=SQL Server'; ``` ### 4.4 FMX 渲染问题 **问题**: FMX 在 Delphi 11 中可能有细微渲染差异 **解决方案**: - 检查所有 Form 和 Frame 的布局 - 验证高DPI设置 - 测试不同分辨率下的显示效果 ## 五、升级后优化 ### 5.1 IDE 设置优化 1. **启用 LSP**: ``` Tools → Options → Language Server Protocol ☑ Enable Language Server Protocol ``` 2. **优化代码洞察**: ``` Tools → Options → Editor Options → Code Insight ☑ Code Completion ☑ Code Parameters ☐ Background compilation (如果性能不足) ``` 3. **配置多线程编译**: ``` Tools → Options → Building → Compiling ☑ Enable parallel compilation Number of parallel jobs: (CPU核心数) ``` ### 5.2 项目设置优化 1. **启用预编译头**: ```xml $(DCC_UsePackage) true ``` 2. **优化DCU输出**: ``` Project → Options → Directories/Conditionals Intermediate Output (.dcu): dcu\$(Platform)\$(Config) ``` 3. **启用增量编译**: ``` Project → Options → Directories/Conditionals ☑ Link with runtime packages (如果适用) ``` ### 5.3 性能优化 1. **使用SSD**: 将项目放在SSD上 2. **增加内存**: 至少16GB RAM 3. **清理缓存**: 定期清理IDE缓存 4. **禁用不需要的平台**: 只保留Win64 ## 六、版本对应关系 | ProjectVersion | IDE版本 | 产品名称 | |---------------|---------|---------| | 19.5 | ~10.4/10.5 | Delphi 10.4/10.5 Sydney | | 20.0 | 10.6 | Delphi 10.6 Sydney | | 21.0 | 11.0 | Delphi 11 Alexandria | | 22.0 | 11.3 | Delphi 11.3 Alexandria | | 23.0 | 12.0 | Delphi 12 Athens | **您的项目从 19.5 升级到 22.0 (Delphi 11)**: - ProjectVersion: 19.5 → 22.0 - 需要更新项目文件中的版本号 - IDE会自动处理大部分兼容性 ## 七、回滚计划 如果升级失败,按以下步骤回滚: 1. **关闭 Delphi 11** 2. **删除项目目录** 3. **从备份恢复**: ```powershell Remove-Item -Path "d:\word\dyp\client-dyp" -Recurse -Force Copy-Item -Path "d:\word\dyp\client-dyp_backup_YYYYMMDD" -Destination "d:\word\dyp\client-dyp" -Recurse ``` 4. **继续使用原IDE** ## 八、技术支持资源 ### 8.1 官方资源 - Embarcadero DocWiki: https://docwiki.embarcadero.com - Embarcadero Quality Portal: https://quality.embarcadero.com - Embarcadero Forums: https://en.delphi.org/forum ### 8.2 社区资源 - Delphi-PRAXIS: https://en.delphipraxis.net - Stack Overflow: https://stackoverflow.com/questions/tagged/delphi - Chinese Delphi Community: 中国Delphi社区 ### 8.3 升级工具 - Delphi Upgrade Wizard (内置) - Castalia (代码重构工具) - ModelMaker (代码建模工具) ## 九、升级检查清单 ### 9.1 升级前 - [ ] 确认系统要求满足 - [ ] 完整备份项目 - [ ] 记录当前IDE版本 - [ ] 确认所有第三方组件版本 - [ ] 准备回滚计划 ### 9.2 升级中 - [ ] 安装 Delphi 11 - [ ] 打开项目并升级 - [ ] 重新安装第三方组件 - [ ] 解决所有编译错误 - [ ] 更新项目配置 ### 9.3 升级后 - [ ] 编译成功 - [ ] 启动应用程序 - [ ] 测试核心功能 - [ ] 测试所有业务模块 - [ ] 性能测试 - [ ] 生成最终备份 ## 十、总结 升级到 Delphi 11 将为您带来: ✅ **性能提升**: - 更快的编译速度 - 更好的IDE响应 - 改进的内存管理 ✅ **新特性**: - 更好的 FMX 支持 - 改进的 REST 客户端 - 更好的 Linux 支持 - 改进的 FireDAC ✅ **未来准备**: - 为升级到 Delphi 12 做好准备 - 支持最新 Windows 功能 - 更好的移动端支持 ⚠️ **注意事项**: - 第三方组件可能需要更新 - 可能需要调整一些代码 - 建议进行全面测试 如有任何问题,请参考本指南或寻求社区帮助!