9.5 KiB
9.5 KiB
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 备份项目
必须备份的内容:
- 整个项目源代码目录
- 第三方组件库
- 项目配置文件
- 编译输出设置
备份命令:
# 备份整个项目
Copy-Item -Path "d:\word\dyp\client-dyp" -Destination "d:\word\dyp\client-dyp_backup_$(Get-Date -Format 'yyyyMMdd')" -Recurse
2.3 收集依赖信息
需要确认的组件:
-
第三方组件:
- EhLib (数据库控件库)
- SPComm (串口通信组件 - 1997年版本)
- TeeChart/TeeUI (图表组件)
-
Delphi内置组件包:
- FireDAC
- RESTComponents
- Indy (网络通信)
- EMS/FireMonkey
三、升级步骤
3.1 第一阶段:准备阶段
步骤1:安装 Delphi 11
-
下载Delphi 11:
- 访问 Embarcadero 官网
- 下载 Delphi 11 Alexandria Community Edition 或更高版本
- 或使用现有的 Delphi 11 许可证
-
安装选项:
☑ Delphi 11 Alexandria ☑ FireMonkey IDE ☑ FMX Linux SDK ☑ Windows Platform SDK ☑ Android SDK ☑ iOS SDK -
安装位置:
- 建议安装到:
C:\Program Files\Embarcadero\Studio\22.0 - 或现有 Delphi 11 安装目录
- 建议安装到:
步骤2:检查第三方组件
-
确认组件版本:
- EhLib: 需要 Delphi 11 兼容版本 (EhLib 12.0+)
- SPComm: 检查是否有更新版本
- TeeChart: 需要 Delphi 11 兼容版本
-
更新组件:
- 下载最新版本的第三方组件
- 为 Delphi 11 重新安装组件包
3.2 第二阶段:项目迁移
步骤3:打开项目
- 启动 Delphi 11
- 打开项目文件:
- File → Open Project
- 选择
MainWin.dproj文件
- IDE会自动检测到旧版本项目
- 点击 "Upgrade" 按钮
步骤4:处理升级向导
Delphi 11 会自动处理以下内容:
- 项目版本号更新
- 平台配置迁移
- 编译器选项更新
- 必要的文件格式转换
步骤5:更新项目文件
ProjectVersion 映射:
| 旧版本 (ProjectVersion) | 新版本 |
|---|---|
| 19.5 | 22.0 (Delphi 11) |
需要手动更新的配置:
-
平台SDK版本:
- 更新 Windows SDK 到最新版本
- 更新 Android SDK 版本
-
编译器选项:
- 检查并优化编译器设置
- 更新优化级别
3.3 第三阶段:代码适配
步骤6:处理编译器警告和错误
常见升级问题及解决方案:
-
单元引用问题:
// 如果遇到单元找不到的错误,检查并更新uses子句 uses System.SysUtils, System.JSON, // Delphi 10.4+ 中移动到 System.JSON // ... -
FMX类型变更:
// 某些FMX控件属性可能有变化 // 检查 FormStyle vs FormFactor -
FireDAC变更:
// 检查 FireDAC 连接配置 // 更新 TFDConnection 参数 -
RESTClient变更:
// Delphi 11 中 RESTClient 有改进 // 检查并更新网络请求代码
步骤7:处理第三方组件
-
重新安装组件:
- 打开 Delphi 11 的组件安装包
- 重新编译并安装所有第三方组件
-
更新组件引用:
- 重新配置 Search Path
- 更新 Library Path
- 更新 Browsing Path
-
处理兼容性问题:
- 如果组件不兼容,查找替代方案
- 或等待组件更新
3.4 第四阶段:测试验证
步骤8:编译项目
-
清理项目:
Project → Clean -
重新编译:
Project → Compile (Ctrl + F9) -
处理编译错误:
- 逐一处理所有编译错误
- 记录需要修改的代码
步骤9:运行测试
-
基础功能测试:
- 启动应用程序
- 检查主界面加载
- 测试基本操作
-
核心功能测试:
- 测试数据库连接
- 测试网络通信
- 测试PLC通信
- 测试串口通信
-
特定功能测试:
- 物料追踪功能
- 工单管理功能
- 报工功能
四、已知问题和解决方案
4.1 SPComm 组件问题
问题: SPComm 是 1997 年的组件,可能与 Delphi 11 不兼容
解决方案:
-
方案一 - 使用替代组件:
- TComPort (第三方串口组件)
- AsyncFree (现代串口库)
-
方案二 - 自行更新SPComm:
- 重新编译 SPComm 源代码
- 更新 API 调用以兼容新版本 Windows
4.2 RESTClient 问题
问题: 旧版 RESTClient 代码可能需要调整
解决方案:
// 旧代码可能需要更新
// Delphi 11 中更好的错误处理
try
RESTRequest.Execute;
except
on E: ERESTException do
// 处理网络错误
end;
4.3 FireDAC 问题
问题: 数据库连接配置可能有变化
解决方案:
// 更新 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 设置优化
-
启用 LSP:
Tools → Options → Language Server Protocol ☑ Enable Language Server Protocol -
优化代码洞察:
Tools → Options → Editor Options → Code Insight ☑ Code Completion ☑ Code Parameters ☐ Background compilation (如果性能不足) -
配置多线程编译:
Tools → Options → Building → Compiling ☑ Enable parallel compilation Number of parallel jobs: (CPU核心数)
5.2 项目设置优化
-
启用预编译头:
<DCC_UsePackage>$(DCC_UsePackage)</DCC_UsePackage> <DCC_Writeable常量>true</DCC_Writeable常量> -
优化DCU输出:
Project → Options → Directories/Conditionals Intermediate Output (.dcu): dcu\$(Platform)\$(Config) -
启用增量编译:
Project → Options → Directories/Conditionals ☑ Link with runtime packages (如果适用)
5.3 性能优化
- 使用SSD: 将项目放在SSD上
- 增加内存: 至少16GB RAM
- 清理缓存: 定期清理IDE缓存
- 禁用不需要的平台: 只保留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会自动处理大部分兼容性
七、回滚计划
如果升级失败,按以下步骤回滚:
- 关闭 Delphi 11
- 删除项目目录
- 从备份恢复:
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 - 继续使用原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 功能
- 更好的移动端支持
⚠️ 注意事项:
- 第三方组件可能需要更新
- 可能需要调整一些代码
- 建议进行全面测试
如有任何问题,请参考本指南或寻求社区帮助!