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

dav*_*l12 7 delphi vcl firemonkey delphi-xe8

XE8中的表单自动添加使用System.ImageList.就像在embarcadero网站上说:

System.ImageList包含实现图像列表最基本的设备无关功能的FireMonkey和VCL代码的通用代码.System.ImageList包含支持图像列表中的图像之间的交互并使用它们组件(如控件,菜单项等)的代码.

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

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

Dav*_*nan 9

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

不,IDE可以做到这一点.您的选择包括:

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

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

如果您根本无法做到这一点,那么单位别名可能是侵入性最小的选项.我猜你没有.dproj文件在版本控制下,因为如果你这样做,你将面临与XE7修改XE8版本相似的问题,反之亦然.因此,如果.dproj文件在版本控制之外,那么它应该很容易在本地为XE7用户进行修改.但是这样的伎俩只能被视为一个临时的垫脚石,让你保持漂浮,直到你们都使用相同版本的Delphi.

更一般地说,Embarcadero目前正在频繁发布新版本.升级需要时间.您必须安装,解决任何编译问题,在编译器下测试构建,并处理出现的任何缺陷.您不必进行每次升级.跳过一些可以.这样做效率更高.在我的工作场所,我们从XE3搬到了XE7,并不打算采用XE8.如果您确实进行了升级,请确保收益超过成本.

  • 我通常会将虚拟单元放在一个特殊的文件夹中,我直接将其添加到旧的IDE库路径中.这有助于保持dpr清洁,并从一开始就适用于所有项目. (2认同)