IDE 登録コンポーネントのパッケージを開発していますが、そのほとんどはベース TFrame クラスから派生しています。パッケージに含まれている、これらのコンポーネントによって呼び出されるさまざまなカスタム ダイアログ フォームもあります。私は Delphi 2007 で作業しています。
通常は DFM ファイルが関連付けられているフレームおよびフォーム ユニットの場合、その下に DFM ファイル (小さな [+] ツリービュー ノード エキスパンダーからアクセス可能) が常に表示されるとは限らないことに気付きました。たとえば、既存のフォームベースの PAS ファイルを (プロジェクト マネージャーで) BPL プロジェクトを右クリックして追加すると、リストに DFM ファイルが表示されません。
ただし、新規追加し、プロジェクトに新しいフォームまたはフレーム ユニットを作成すると、プロジェクト マネージャーでは典型的なネストされた 2 つのファイル アイテムとして表示されます。また、既存のフォームをプロジェクト グループ内の別のプロジェクトから問題の BPL プロジェクトにドラッグすると、そのようになります。
これは一貫しているように思われ、ユニットがフレームまたはフォームの場合に表示される両方のファイルを好みます。
これは、プロジェクト ファイルに何か問題があることを示していますか? このパッケージに既存のフォーム/フレームを間違って追加していませんか? その場合、既存のフォーム/フレーム ユニットを追加して、両方のファイルが Project Manager のリストに表示されるようにするにはどうすればよいですか?
* アップデート *
以下のアレンの提案から:
{$R *.dfm} ディレクティブをフォームのユニットに追加しようとしましたが、BPL パッケージ/プロジェクトに追加するときに DFM ファイルが強制的に表示されませんでした。{$R *.dfm} をプロジェクト ファイル自体に追加しても (これは意図したことではないと思いますが、試してみようと思いました)、どちらも機能しませんでした。この手法は EXE プロジェクトでのみ機能しますか?
おそらく(おそらく)関連して、そのディレクティブを使用してビルドしようとすると、次のようになります。
[DCC エラー] E2161 警告: リソースが重複しています: タイプ 10 (RCDATA)、ID TTESTTREEVIEW; ファイル E:\Projects\MyApp\Components\TTestTreeViewFrame.dfm リソースが保持されます。ファイル E:\Projects\MyApp\Components\TTestTreeViewFrame.dfm リソースは破棄されました。
同じファイルを「Keping」と「破棄」しますか??
後で: この「重複リソース」の問題は、 これに関連しているようです。確かではありませんが、少なくとも 1 つのインスタンスで両方が同時に発生しました。