delphi - 是否可以在一种 FMX 表单上使用不同的 Delphi 版本?

标签 delphi delphi-xe4 delphi-10.1-berlin

我使用 Delphi 10.1 Berlin。我的一个 friend 拥有Delphi XE4。

我想修改属于 FMX 表单的代码。代码和表单是用 XE4 编写的,并且需要在 XE4 中保持可编译性。如果我在 10.1 IDE 中编辑代码并保存更改,Delphi 会修改源代码(添加单元)并转换表单(FMX 文件) 到新的格式。如果在 XE4 中编译此修改后的形式,则会导致几个错误。

是否可以告诉Delphi不要进行这些修改?

顺便说一句:

  • 如果我在 IDE 之外编辑代码,一切似乎都工作正常。
  • Delphi 10.1 正在添加单元(例如 FMX.ComboEdit、FMX.ScrollBox、FMX.Controls.Presentation),即使这些单元已经存在但 ifdefed,例如:

      {$IFDEF DELPHIX_BERLIN_UP} 
      FMX.ComboEdit, FMX.ScrollBox, FMX.Controls.Presentation
      {$ENDIF}
      FMX.ActnList;
    

    修改为

      {$IFDEF DELPHIX_BERLIN_UP} 
      FMX.ComboEdit, FMX.ScrollBox, FMX.Controls.Presentation
      {$ENDIF}
      FMX.ActnList, FMX.ComboEdit, FMX.ScrollBox, FMX.Controls.Presentation;
    

    导致编译器错误:

      E2004: Identifier redeclared: FMX.ComboEdit ... 
    

最佳答案

Is it possible to tell Delphi not to do these modifications?

不,事实并非如此。 DFM/FMX 文件始终由 IDE 管理且特定于版本。您应该为每个 IDE 版本维护单独的 DFM/FMX 文件。

让较旧的 IDE 发出警告并忽略较新的 IDE 添加的属性通常是可以的。还有一些第三方工具可以在您在较旧的 IDE 中打开 DFM/FMX 文件之前从其中删除较新的属性。

关于delphi - 是否可以在一种 FMX 表单上使用不同的 Delphi 版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37332075/

相关文章:

delphi - TVector3D.AddVector3D 不起作用(对我来说)

delphi - 如何在 Delphi 中创建有吸引力的侧栏菜单

listview - 如何检测 TListView 组标题上的鼠标单击?

firemonkey - 使用 IFMXCameraService.TakePhoto,有没有办法获取图像路径?

delphi - 线程中的奇怪问题,应用程序不退出

delphi - ARC下数据库连接对象(Mydac TMyConnection)会发生什么

delphi - 如何将 OmniPascal 安装到 vscode 中

delphi - 非英语语言iOS应用XE4问题

delphi - 如何使组合框下拉列表比组合框本身*窄*

Delphi 预构建事件在编译之前不执行