加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

为什么Delphi XE7会在每个FMX表单上更改PNG图像?

发布时间:2020-12-15 09:12:55 所属栏目:大数据 来源:网络整理
导读:我有一个包含许多自定义firemonkey组件的表单,其中每个组件包含多个位图(从PNG图像文件加载).每次保存表单时,PNG图像的二进制数据都会在FMX文件中发生变化! 这会弄乱我的版本控制日志(SVN),因为更改表单中的一个属性会导致数千个更改的行. 有什么方法可以避
我有一个包含许多自定义firemonkey组件的表单,其中每个组件包含多个位图(从PNG图像文件加载).每次保存表单时,PNG图像的二进制数据都会在FMX文件中发生变化!

这会弄乱我的版本控制日志(SVN),因为更改表单中的一个属性会导致数千个更改的行.

有什么方法可以避免这种情况吗?

请参阅SVN diff的屏幕截图:

保存表单时,我没有更改DotInlay.PNG图像,甚至包含图像的控件也没有任何更改.

编辑:
从评论中,这是Delphi中的一个错误,因此我创建了一个新的QP报告:
https://quality.embarcadero.com/browse/RSP-11259

如果您发现它应该被解决,请投票给它.

解决方法

IDE就是这样.将二进制资源放入.dfm / .fmx文件的危险之一.我不相信你有什么可以做的.只有Embarcadero可以更改他们的IDE.

与.dfm / .fmx文件和源代码控制有关的是仔细检查每个提交并恢复意外更改.无论如何都需要这样做,因为IDE确实习惯于改变不应该改变的东西.即使是非二进制资源.

我的建议是你不要把图像放在.dfm / .fmx文件中.把它们留在资源中.这样,您可以将图像文件放入版本控制中,并将其作为资源链接到可执行文件.您需要在代码中执行更多工作以在运行时加载资源,但是如果需要,可以将其包装在辅助方法中,并且每个图像加载应该减少到一行.

这种方法的真正好处是您可以对二进制资产进行更好的更改控制.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读