我有一个包含许多自定义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文件中.把它们留在资源中.这样,您可以将图像文件放入版本控制中,并将其作为资源链接到可执行文件.您需要在代码中执行更多工作以在运行时加载资源,但是如果需要,可以将其包装在辅助方法中,并且每个图像加载应该减少到一行.
这种方法的真正好处是您可以对二进制资产进行更好的更改控制.