有没有一种方法可以防止VB6编译器改组文件的内容?
时间:2020-03-06 15:05:00 来源:igfitidea点击:
由于未知原因,VB6编译器通常喜欢对.vbp文件的内容和.frm文件顶部的控件描述符块进行重新排序(描述窗体上控件属性的代码。 IDE,但我们确实在文本编辑器中看到了,并且在版本控制中与以前的版本进行比较时也看到了)。比较文件的修订版本时,这非常烦人并且令人分心。
有办法防止这种情况吗?
解决方案
如果不编辑.vbp文件(例如,添加模块等),是否可以将其设为只读?
至于表单文件...我根本想不出让VB不对它们重新排序的任何好方法。但是我不得不说我从来没有遇到过这种情况。我们确定没有其他事情发生吗?
过去我很可能从来没有对此进行任何关注,所以我并不是说我们在弄错,只是提供我自己的观察。
我认为我们对此无能为力。我注意到了同样的问题:IDE似乎没有明显的理由就喜欢重新排列东西。我注意到的一些事情:
- 当我们使用SSTab控件时,VB喜欢重新排列选项卡的属性,尤其是TabEnabled属性。
- 对于项目文件,它随机地重新排列文件的显示顺序,我想我还记得曾经看到过类似文件类型并非总是分组在一起并最终与项目属性混在一起的情况。我们对此没有太多控制权,除非我们通过某种类型的清理程序运行所有的VBP,这些清理程序将文件(如一组形式,另一组中的模块等)分组在一起并按字母顺序或者类似方式对其进行排序,以便它们保持一致。解决此问题的一种可能方法是编写一个IDE插件,该插件在我们每次将更改保存到项目文件时自动执行此操作,或者提出一些批处理过程,该批处理将仅遍历源目录并清理其中的所有VBP。一口气。
- IDE似乎会随机改变情况。这似乎经常发生在项目参考中。有时它们以小写输出,而其他时候则以大写输出。我们可以通过在SourceSafe中比较文件时选择"忽略大小写"来解决此问题。
- 相同形式的两个修订版之间的控件坐标(如"上","左","高度"和"宽度")可以不同。这是由于不同的开发人员在处理同一表单时使用了不同的屏幕分辨率和/或者不同的屏幕DPI设置。如果我们还没有这样做,我强烈建议我们让所有人使用相同的分辨率和相同的DPI设置进行开发。不同的值是由于将具有不同分辨率/ DPI设置的逻辑屏幕坐标转换为缇(VB用于布局表格的默认坐标空间)时发生的舍入错误而导致的。此外,在我进行主题讨论时,请确保每个人的显示设置都为96dpi,因为如果我们以120dpi的速度开发VB表单,则确实有很大的机会,他们将无法正确地显示为96dpi。
- 我可能现在还不记得其他事情...
至于在表单文件中更改控件的顺序,这是正常现象,并且通常不希望尝试手动重新排列控件的顺序,如果它恰巧从表单的一个修订版更改为下一个修订版。控件在表单文件中出现的顺序决定了它们在表单上的Z顺序。如果控件的顺序在.frm文件中更改,这将更改它们在表单上的相对Z顺序,这可能会导致表单显示方式出现意想不到的结果。
我注意到,重新打开表单并再次保存通常会恢复一致的顺序。