delphi - 我可以阻止XE8添加System.ImageList吗?

标签 delphi firemonkey vcl delphi-xe8

XE8 中的表单会自动添加使用System.ImageList。就像embarcadero site据说:

System.ImageList contains the common for both FireMonkey and VCL code implementing the most basic device-independent features of image lists. System.ImageList contains the code supporting interaction between images in an image list and using them components (like controls, menu items, and so on).

但是我的同事大多还在使用XE7。现在,他们需要在我提交后不断删除该使用。当我删除它时,我的 XE8 会自动添加此用途。当然,我可以在与另一个编辑器提交之前删除这些用途。但如果我可以阻止 XE8 添加这部分代码,那么效率会更高。或者 Firemonkey 和 VCL 会停止正常工作吗?

所以我的问题是:我可以阻止 XE8 将 System.ImageList 添加到我在表单中的使用吗?

最佳答案

Can I prevent XE8 from adding System.ImageList to my uses in a Form?

没有。无论发生什么情况,IDE 都会执行此操作。您的选择包括:

  • 将单元包装在条件中,以便 XE7 编译器看不到它。
  • 创建一个名为 System.ImageList 的虚拟空单元,将其列在 .dpr 文件中,再次包含在条件中,以便仅 XE7 编译器可以看到它。
  • 为不同版本维护单独的 .dproj 文件。在XE7版本中添加一个将System.ImageList映射到System的单元别名。
  • 在使用文本编辑器或脚本提交之前删除该单元。
  • 让您的团队在 Delphi 的通用版本上进行标准化。

我个人推荐后一种选择。请记住,您可以愉快地并排安装多个 Delphi 版本,并且如有必要,可以对不同的项目使用不同的版本。这在维护程序的发布分支时至关重要。

如果您根本无法做到这一点,那么单元别名可能是侵入性最小的选项。我猜您没有受修订控制的 .dproj 文件,因为如果您这样做,那么您将面临 XE7 修改 XE8 版本的类似问题,反之亦然。因此,如果 .dproj 文件不受版本控制,那么 XE7 用户应该很容易在本地进行修改。但是,在你们都使用同一版本的 Delphi 之前,这样的技巧应该只被视为让您维持下去的临时垫脚石。

更一般地说,Embarcadero 目前非常频繁地发布新版本。升级需要时间。您必须安装、解决任何编译问题、在编译器下测试构建并处理出现的任何缺陷。您不必每次升级都进行。跳过一些就好了。这样做可以更有效率。在我的工作场所,我们从 XE3 迁移到 XE7,并且不会采用 XE8。如果您确实进行升级,请确保 yield 大于成本。

关于delphi - 我可以阻止XE8添加System.ImageList吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31334285/

相关文章:

delphi - 在 StringGrid 中强制选择单元格 - Delphi

firebase - Firestore 身份验证用户

delphi - Firemonkey 自定义通知声音不起作用

c++ - 如何在 C++ Builder XE5 跨平台中获取 TAlphaColor 的 RGB 分量?

delphi - 按字符串过滤时隐藏 TListBox 中的项目

delphi - TFormatSettings.Create 返回不正确的格式

delphi - 解析平面文本文件

delphi - SkypeKit 与使用 Skype API 编程有何不同?

VCL 的 Delphi TExpander 等效项

inno-setup - 创新设置: change the setup language while setup is running