Files
dyp/Delphi11升级指南.md
T
2026-05-07 20:25:34 +08:00

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 备份项目

必须备份的内容:

  1. 整个项目源代码目录
  2. 第三方组件库
  3. 项目配置文件
  4. 编译输出设置

备份命令:

# 备份整个项目
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. 单元引用问题:

    // 如果遇到单元找不到的错误,检查并更新uses子句
    uses
      System.SysUtils,
      System.JSON,  // Delphi 10.4+ 中移动到 System.JSON
      // ...
    
  2. FMX类型变更:

    // 某些FMX控件属性可能有变化
    // 检查 FormStyle vs FormFactor
    
  3. FireDAC变更:

    // 检查 FireDAC 连接配置
    // 更新 TFDConnection 参数
    
  4. RESTClient变更:

    // 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 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 设置优化

  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. 启用预编译头:

    <DCC_UsePackage>$(DCC_UsePackage)</DCC_UsePackage>
    <DCC_Writeable常量>true</DCC_Writeable常量>
    
  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. 从备份恢复:
    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 官方资源

8.2 社区资源

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 功能
  • 更好的移动端支持

⚠️ 注意事项:

  • 第三方组件可能需要更新
  • 可能需要调整一些代码
  • 建议进行全面测试

如有任何问题,请参考本指南或寻求社区帮助!