我们最近更改了从StarTeam更改为SVN,但我们的DFM文件出现问题.看起来Delphi更改了DFM文件,即使我们实际上没有更改表单.
例如:我打开现有文件,更改活动标签页,保存文件,将标签页更改回原始状态,然后再次保存.当我对这两个文件进行区分时,PixelsPerInch,TextHeight,Top和许多其他值都发生了变化?我的代码的一小部分示例:
PixelsPerInch = 96
TextHeight = 13
inherited PageControl1: TPageControl
Top = 105
Height = 629
Margins.Left = 5
Margins.Top = 5
Margins.Right = 5
Margins.Bottom = 5
HotTrack = True
inherited TabSheet1: TTabSheet
Margins.Left = 5
Margins.Top = 5
Margins.Right = 5
Margins.Bottom = 5
Run Code Online (Sandbox Code Playgroud)
我的问题是:有没有办法让Delphi只在表单发生变化时才更改DFM?现在,当我们一直在SVN中更新时,我们会发生冲突.
这只是Delphi的表单流机制如何工作的结果.
在Delphi设计器中打开表单时,.dfm文件用于在表单上创建每个组件的实例.在您的情况下,表单设计器将实例化.dfm文件中的每个对象.将读入.dfm文件中的每个属性.
然后,如果您在设计器中执行任何操作,将表单标记为已修改,例如更改活动标签页,则设计器将在您保存时重新创建.dfm文件.它通过要求内存组件自行保存来重新创建.dfm文件.此保存过程不会考虑磁盘上的.dfm文件.每个组件只保存它们在那个时间点的属性.
因此,总而言之,您无法改变德尔福的行为.您可以做的最好的事情是解决它,以尽量减少影响.
如果您的表单有,Scaled=True那么您应确保所有开发人员计算机使用相同的字体缩放.否则,当开发人员A保存一个字体缩放时,该.dfm文件将与开发人员B以不同字体缩放保存的文件完全不同.所有职位都将被更改.听起来好像你有一些开发人员使用120dpi字体缩放.那将会让你无尽悲伤.
如果对表单文件进行良性编辑会导致较大的更改,请提交这些更改.一旦你以相同的方式配置了每台开发者机器,你就会发现事情已经解决了.那些良性编辑不应再导致.dfm文件更改.
这只是Delphi视觉设计的职业危害之一.无论何时提交,都需要对.dfm文件进行大量的关注和关注.我经常发现自己从Tortoise提交对话框恢复对.dfm文件的更改.我还经常选择在文本编辑器中修改.dfm文件,而不是使用表单设计器!
| 归档时间: |
|
| 查看次数: |
1426 次 |
| 最近记录: |