理由は不明ですが、VB6 コンパイラは、多くの場合、.vbp ファイルの内容と、.frm ファイルの先頭にあるコントロール記述子ブロック (フォーム上のコントロールのプロパティを記述するコード。 IDE に表示されますが、テキスト エディターで確認したり、バージョン管理で以前のリビジョンとの差分を作成したりすると表示されます。) これは、ファイルのリビジョンを比較するときに非常に煩わしく、非常に気が散ります。
これを防ぐ方法はありますか?
理由は不明ですが、VB6 コンパイラは、多くの場合、.vbp ファイルの内容と、.frm ファイルの先頭にあるコントロール記述子ブロック (フォーム上のコントロールのプロパティを記述するコード。 IDE に表示されますが、テキスト エディターで確認したり、バージョン管理で以前のリビジョンとの差分を作成したりすると表示されます。) これは、ファイルのリビジョンを比較するときに非常に煩わしく、非常に気が散ります。
これを防ぐ方法はありますか?
これについてあなたができることはあまりないと思います。私は同じ問題に気付きました: IDE は一見何の理由もなく物事を再配置するのが好きです。私が気づいたいくつかのこと:
SSTab コントロールを使用する場合、VB はタブのプロパティ、特に TabEnabled プロパティを再配置します。
プロジェクト ファイルの場合、ファイルの出現順序がランダムに並べ替えられますが、似たようなファイル タイプが常にグループ化されているとは限らず、プロジェクトのプロパティに混ざってしまうケースを見た記憶があります。ファイルのようなグループ (あるグループのフォーム、別のグループのモジュールなど) ですべての VBP を実行し、アルファベット順などで並べ替えない限り、これをあまり制御することはできません。一貫性を保ちます。これを処理する 1 つの可能な方法は、プロジェクト ファイルに変更を保存するたびにこれを自動的に実行する IDE アドオンを作成するか、ソース ディレクトリを再帰的に処理してすべての VBP をクリーンアップするバッチ プロセスを考え出すことです。一発。
IDE はランダムにケースを変更するようです。これは、プロジェクト参照で頻繁に発生するようです。小文字で出力される場合もあれば、大文字で出力される場合もあります。SourceSafe でファイルを比較するときに「大文字と小文字を区別しない」を選択すると、これを回避できます。
上、左、高さ、幅などのコントロール座標は、同じフォームの 2 つのリビジョン間で異なる場合があります。これは、異なる開発者が同じフォームで作業しているときに、異なる画面解像度や異なる画面 DPI 設定を使用しているためです。まだこれを行っていない場合は、全員に同じ解像度と同じ DPI 設定を使用して開発してもらうことを強くお勧めします。異なる値は、異なる解像度/DPI 設定の論理画面座標が twip (VB がフォームのレイアウトに使用する既定の座標空間) に変換されるときに発生する丸め誤差によって発生します。さらに、私がこのトピックに取り組んでいる間は、誰もがディスプレイを 96dpi に設定していることを確認してください。VB フォームを 120dpi で開発すると、96dpi に設定されたディスプレイで正しく表示されない可能性が非常に高いからです。
他にもまだ覚えていないことがあるかもしれません…
フォーム ファイル内で変更されるコントロールの順序に関しては、これは正常なことであり、通常、フォームのあるリビジョンから次のリビジョンに変更された場合に、コントロールの順序を手動で再配置しようとはしません。コントロールがフォーム ファイルに表示される順序によって、フォーム上の Z オーダーが決まります。コントロールの順序が .frm ファイルで変更されると、フォーム上の相対的な Z オーダーが変更され、フォームの表示方法に意図しない結果が生じる可能性があります。
.vbp ファイルを編集していないとき (つまり、モジュールの追加など) に読み取り専用にすることはできますか?
フォーム ファイルに関する限り... VB がそれらを並べ替えないようにする良い方法はまったく考えられません。しかし、これまでにこれに遭遇したことはないと言わざるを得ません。他に何かが起こっていないと確信していますか?
過去にこれに注意を払っていなかった可能性は十分にあるので、あなたが間違っていると言っているのではなく、私自身の観察を提供しているだけです.