XE8中的表单会自动添加 System.ImageList 。就像在embarcadero site上说的那样:
System.ImageList包含实现图像列表最基本的设备无关功能的FireMonkey和VCL代码的通用代码。 System.ImageList包含支持图像列表中图像之间交互并使用它们组件(如控件,菜单项等)的代码。
但是我的同事们大多还在使用XE7。现在,他们需要在我提交后不断删除该用途。当我删除它时,我的XE8会自动添加此用途。在我提交另一个编辑器之前,我可以删除用途。但是当我阻止XE8添加这部分代码时,它会更有效率。或者Firemonkey和VCL会不能正常工作?
所以我的问题是:我可以阻止XE8将 System.ImageList 添加到我在表单中的使用吗?
答案 0 :(得分:9)
我可以阻止XE8将System.ImageList添加到我在表单中使用吗?
没有。 IDE可以做到这一点。您的选择包括:
System.ImageList
的虚拟空单元,它在.dpr文件中列出,再次包含在条件中,以便只能由XE7编译器查看。 System.ImageList
映射到System
的单位别名。 我个人会推荐后一种选择。请记住,您可以愉快地并排安装多个Delphi版本,并在必要时为不同的项目使用不同的版本。这在维护程序的发布分支时非常重要。
如果您根本无法做到这一点,那么单位别名可能是侵入性最小的选项。我猜你没有.dproj文件在版本控制下,因为如果你这样做,你将面临与XE7修改XE8版本相似的问题,反之亦然。因此,如果.dproj文件在版本控制之外,那么它应该很容易在本地为XE7用户进行修改。但是这样的伎俩只能被视为一个临时的垫脚石,让你保持漂浮,直到你们都使用相同版本的Delphi。
更一般地说,Embarcadero目前正在频繁发布新版本。升级需要时间。您必须安装,解决任何编译问题,在编译器下测试构建,并处理出现的任何缺陷。您不必进行每次升级。跳过一些可以。这样做效率更高。在我的工作场所,我们从XE3搬到了XE7,并不打算采用XE8。如果您确实进行了升级,请确保收益超过成本。
答案 1 :(得分:0)
此代码仅在XE8和更高版本中启用System.ImageList
uses
System.Classes,
System.SysUtils,
{$IF CompilerVersion >= 29}System.ImageList,{$IFEND}
VCL.Forms,
VCL.Dialogs,
VCL.StdCtrls,
VCL.Controls,
VCL.Buttons,
Vcl.ExtCtrls,
Vcl.ImgList,
Vcl.ComCtrls,
Vcl.ToolWin;