ここで、生成されたファイルの概要を把握し、複数の小さなダイアログの .dfm ファイルなどをマージしたいと思います。(おそらく.cppと.hも)。ただし、C++-Builder の VCL デザイナも使用したいと考えています。
.dfm ファイルをマージし、IDE のデザイナーを通常どおり動作させる方法はありますか?
デザイン時に生成されたイベント ハンドラーの実装を、ある .cpp ファイルから別の .cpp ファイルに移動することは可能ですが (推奨はされません) (ただし、宣言を .h ファイルに移動しないでください)。そのため、1 つの .cpp ファイルにすべてのイベント ハンドラーの実装を含めることが考えられ、アプリは正常に動作します。私は自分のプロジェクトの 1 つで反対のことをしています - 私はTForm
それに多くのイベント ハンドラーを持っているので、それらを機能別にグループ化された個別の .cpp ファイルに移動します (はい、それTFrame
を管理するために使用する必要がありますが、私は自由ではありません開発のこの段階でそれを変更します)。
ただし、副次的な効果があります。オブジェクト インスペクタで割り当てられたイベントをダブルクリックしようとすると、ハンドラの実装コードを移動すると、そのハンドラの実装コードを見つけることができなくなります。
ただし、DFM に関しては、設計時に作成されるすべてTForm
の 、TFrame
、およびTDataModule
クラスには、独自の個別の DFM が必要です。IDE と DFM ストリーミング システムはどちらもそれを想定しています。最終的な実行可能ファイルの DFM リソースはクラス名で識別され、DFM ストリーミング システムは、DFM を単一のルート オブジェクト インスタンスにロードするときに、DFM リソース全体を最初から最後まで読み取ります。また、DFM データ形式は、1 つのリソース ストリームで複数の DFM をサポートしていません。
いいえ、複数の DFM を一緒にマージすることはできません。
それとも、実行時にこれらのダイアログを動的に生成する必要がありますか?
はい。または、ダイアログが個々の DFM リソースを使用できるようにすることもできます。あなたが言うようにダイアログの内容が実際に小さい場合、実行可能ファイルへのオーバーヘッドは最小限に抑えられるはずです。