有没有办法防止VB6编译器洗牌文件的内容?

有没有办法防止VB6编译器洗牌文件的内容?,vb6,Vb6,由于未知原因,VB6编译器通常喜欢对.vbp文件的内容和.frm文件顶部的控制描述符块重新排序(描述表单上控件属性的代码。在IDE中看不到但在文本编辑器中看到的代码,以及在版本控制中与以前的版本进行差异时看到的代码。)。在比较文件的版本时,这是非常烦人且非常分散注意力的代码 有没有办法防止这种情况发生?在不编辑.vbp文件(即添加模块等)时,是否可以将其设置为只读 至于表单文件…我想不出任何好办法让VB不重新排序。但我必须说,我以前从未遇到过这种情况。你确定没有其他事情发生吗 这完全有可能是因为

由于未知原因,VB6编译器通常喜欢对.vbp文件的内容和.frm文件顶部的控制描述符块重新排序(描述表单上控件属性的代码。在IDE中看不到但在文本编辑器中看到的代码,以及在版本控制中与以前的版本进行差异时看到的代码。)。在比较文件的版本时,这是非常烦人且非常分散注意力的代码


有没有办法防止这种情况发生?

在不编辑.vbp文件(即添加模块等)时,是否可以将其设置为只读

至于表单文件…我想不出任何好办法让VB不重新排序。但我必须说,我以前从未遇到过这种情况。你确定没有其他事情发生吗


这完全有可能是因为我过去从来没有注意过这一点,所以我不是说你错了,只是提供了我自己的观察结果。

我认为你对此无能为力。我注意到了同样的问题:IDE喜欢毫无理由地重新安排事情。我注意到一些事情:

  • 使用SSTab控件时,VB 喜欢重新排列的属性 制表符,尤其是制表符 财产

  • 对于项目文件,它是随机的 重新排列文件的顺序 出现了,我想我记得看到过 使用类似文件类型的情况 不总是组合在一起并结束 与该项目有牵连 财产,你没有 除非您通过某种类型的消毒剂运行所有VBP,这些消毒剂将文件分组在一起(一个组中的表单,另一个组中的模块,等等),否则您可以对此进行很大的控制一种可能的处理方法是编写一个IDE附加组件,每当您将更改保存到项目文件时自动执行此操作,或者提出一些批处理过程,该过程将在源目录上递归并一次性清理所有VBP

  • IDE似乎会随机更改 事情的情况;这似乎发生了 经常查阅项目参考资料。 有时它们以较低的速度输出 在其他情况下,它们是 输出为大写。您可以 通过选择“忽略”来解决此问题 案例“当您在 资源安全

  • 控制坐标,例如 顶部、左侧、高度和宽度可以不同于 同一表格的两次修订。这是到期日 给不同的开发者使用 不同的屏幕分辨率和/或 在同一窗体上工作时,屏幕DPI设置不同。 如果你还没有这样做,我 强烈建议您 每个人都可以使用相同的方法进行开发 分辨率和相同的DPI设置。 不同的值是由舍入误差引起的,舍入误差 当逻辑屏幕显示时发生 不同分辨率/DPI设置下的坐标 将转换为twips,这是默认设置 VB使用的坐标空间 布置表格。另外,当我讨论这个话题时,请 确保每个人的显示器都设置为96dpi, 因为如果你在 120dpi,有一个非常非常好的 它们可能无法正确显示 在设置为96dpi的显示器上

  • 我可能还有其他事情要做 现在不记得了


至于在表单文件中更改控件的顺序,这是正常的,如果控件的顺序从表单的一个修订版更改到下一个修订版,通常不希望手动重新排列控件的顺序。控件在表单文件中的显示顺序决定了它们在表单上的Z顺序。如果控件的顺序在.frm文件,这将更改它们在窗体上的相对Z顺序,这可能导致窗体显示方式出现意外结果。

我注意到,重新打开窗体并再次保存通常会恢复一致的顺序。

这让我想起了大型VB6应用程序的一个可怕的编译时问题…基本上是有人重新排序了自定义用户控件.ctl文件中的e成员和编译后的控件开始发出一些完全不相关的消息。当我们在VSS中回滚时,它起作用了,所以我们只是将它恢复到原来的状态!我以前在窗体上这样做过,当我需要在两个其他选项卡之间的现有SSTab控件中插入新选项卡时,这比添加新选项卡更容易最后,然后在选项卡之间手动剪切/粘贴,以确保一切正常。只要您小心,您可以使其正常工作;-)将
烦恼
标记替换为
烦恼
。部分复制。我们为版本控制开发了一个钩子脚本,它在提交之前对.vbp文件重新排序。没有勇气处理.frm文件。表单控制顺序直接由Z顺序决定。还可以通过关闭、重新打开和保存项目来重新排序项目文件。它更喜欢将文档和资源文件放在末尾。包含生成选项的文件的。