私はIDEで登録されたコンポーネントのパッケージを開発していますが、そのほとんどはベースのTFrameクラスから派生しています。また、これらのコンポーネントによって呼び出されるさまざまなカスタムダイアログフォームもパッケージに含まれています。私はDelphi 2007で働いています。パッケージにフォームとフレームを追加する
通常、関連するDFMファイルを持つフレームとフォームユニットが、DFMファイルを常に "下に"表示するとは限らないことに気付いています(小さな[+]ツリービューからアクセス可能ですノードエクスパンダ)。既存のフォームベースのPASファイルを追加する場合(たとえば、BPLプロジェクト(プロジェクトマネージャー内) - >追加を右クリックしても、DFMファイルがリストに表示されません。
[新規追加]を選択して、プロジェクト内に新しいフォームまたはフレーム単位を作成すると、プロジェクトマネージャの標準のネストされた2ファイルアイテムとして表示されます。また、プロジェクトグループ内の別のプロジェクトから既存のフォームをこのBPLプロジェクトにドラッグするとその方法が示されます。
これは一貫しているはずです。ユニットがフレームまたはフォームのときに両方のファイルが表示されることをお勧めします。
これはプロジェクトファイルに何か問題があることを示していますか?既存のフォーム/フレームをこのパッケージに間違って追加していますか?もしそうなら、両方のファイルがProject Managerのリストに表示されるように、既存のフォーム/フレーム単位をどのように追加する必要がありますか?以下アレンの提案から
* UPDATE *
:
私は、フォームのユニットに{$ R * .DFM}ディレクティブを追加しようとしたし、それが表示されるまでDFMファイルを強制しませんでしたBPLパッケージ/プロジェクトに追加するときに使用します。プロジェクトファイルそのものに{$ R * .dfm}を追加することは意味がありませんでしたが、試してみると思っていましたが、どちらもうまくいきませんでした。この手法はEXEプロジェクトでのみ機能しますか?
おそらく(おそらく)関連、場所でそのディレクティブを構築しようとすると、私はこれを与える:
[DCCのエラー] E2161警告:重複リソース:タイプ10(RCDATA)、ID TTESTTREEVIEW。ファイルE:\ Projects \ MyApp \ Components \ TTestTreeViewFrame.dfmリソースが保持されます。ファイル E:\ Projects \ MyApp \ Components \ TTestTreeViewFrame.dfmリソースが破棄されました。
"Keping"と同じファイルを "破棄"しますか?
その後:この「重複資源」の問題が thisに関連するかもしれないように見えます。確かではありませんが、少なくとも1つのインスタンスでは両方が同時に発生しました。
私はTurbo Delphi 2006でAllen Bauer/Vegarsの提案を自分で試してみました。 {contains}セクションの行の後に{form#}を追加する必要があります。 bplを閉じてもう一度やり直すと、.dfmがパッケージマネージャーに表示されます。 –