1

C ++ Builder XEが.dfmファイルを自動的に編集しないようにするにはどうすればよいですか?

私は現在、かなり大きなコードベースをBCB5からXEに移植しています。古いコードでは多くの外部コンポーネントが使用されていますが、新しい環境にはまだインストールされていません(動作する代替を見つけるか、自分で移植する必要があるため)。これで、Builderはdfmファイル内のこれらのUIコンポーネントの定義を削除/変更します。IDEがコンポーネントの実装を検出しない場合、コンポーネントは完全に削除されます。既知のコンポーネントの場合、サイズは小さな値でかなり頻繁に変更されます。どうすればこの迷惑な行動をやめることができますか?

4

2 に答える 2

1

DFMとヘッダーファイルの両方を編集して、コンポーネントを削除します。

3つのオプションがあります。

  • IDEがコンポーネントが存在しないフォームを開くと、何をすべきかを尋ねられます。[すべて無視]をクリックすると、それらのコンポーネント参照は削除されません。

  • ソース管理を使用している場合は、それらの変更を元に戻すことができるはずです。つまり、IDEに必要な処理を実行させてから、それらの変更を元に戻すか、コミットしないでください。

  • ただし、最善のアプローチは、これらのコンポーネントを実際にインストールすることです。プロジェクトでフォームを開いているのにコンポーネントが存在しない場合、何をしようとしていますか?それらをコンパイルすることはできません。また、コンポーネントを別のコンポーネントに交換する必要がある場合、IDEが古いコンポーネントを削除することの何が問題になっていますか?

    プロジェクトとそのファイルを自分でアップグレードする前に、可能であれば、最初に同じコンポーネントの新しいバージョンをインストールすることをお勧めします。次に、プロジェクトをアップグレードし、ケースバイケースで、存在しないコンポーネントへの参照を削除して、別のコンポーネントに置き換えます。

「既知のコンポーネントの場合、サイズは小さな値でかなり頻繁に変更されます。」

技術的にはこれは別の質問です;)しかし、それが小さい場合は無視してください。ExplicitLeftのようないくつかのプロパティExplicitTopはほぼ確実に変更されます。これは、ウィンドウのタイトルバーとエッジの幅が異なるためだと思います(通常、フォームがXPで保存されたときにVistaを使用している場合に見られます。これらが絶えず変化する理由をかなり理解しましたが、何の影響も及ぼさないようです。)フォームが最後に保存されたものと同じDPI設定のシステムを使用していることも確認してください(これはのフォントサイズ設定です)表示プロパティ。)

于 2011-08-10T05:16:33.517 に答える
0

dfmファイルは、対応するcppまたはhファイルが開いている場合にのみIDEによって変更されることがわかりました。このようにして、ソースをコンパイルできます。不明なコンポーネント/プロパティが見つかるとすぐにコンパイラがエラーをスローし、それらを解決できます。

于 2011-08-10T07:04:24.667 に答える