X1033 ユニット '%s' が暗黙のうちにパッケージ '%s' にインポートされました(Delphi)

提供: RAD Studio
移動先: 案内検索

エラーと警告のメッセージ(Delphi) への移動


この警告は、現在コンパイル中のパッケージにユニットが暗黙的にリンクされたことを示します。通常、ユニットは次のいずれかの方法でパッケージに関与します。

  • "Contains" フォルダを通じて明示的にインポートする
  • 別のパッケージの一部を "Requires" フォルダで指定する

コンパイルに必要なユニットが "Contains" フォルダの中にも "Requires" フォルダで指定されたパッケージの中にも見つからない場合、そのユニットは、あたかも "Contains" フォルダに含まれているかのように暗黙的にインポートされます。

この警告は、ユニットをパッケージに明示的に追加するか、足りないユニットを含んでいるパッケージへの参照を追加することを検討するよう、プログラマに知らせるためのものです。

今後この問題が起きないようにするには、.dcp ファイル(パッケージのコンパイルおよびリンクに関する情報を含んでいるファイル)を下記の Requires または Contains 句/フォルダに追加する必要があります。

  • Requires フォルダは、通常、このパッケージをコンパイルするのに必要なユニットを含んでいる他のパッケージを参照します。これらのパッケージは、System ユニットや SysUtils ユニットなどを含んだ RTL パッケージのように Delphi から提供されるパッケージでもよいし、ユーザー定義ユニットを含んだプログラマ作成のパッケージでもかまいません。
  • Contains フォルダには、パッケージに組み込まれるユニットが含まれています。"Requires" フォルダに挙げられている他のパッケージにあるユニットは含まれません。

問題の解決

コード エディタでは、コードを必要に応じて編集することにより、"requires" 句や "contains" 句にユニットを追加できます。[プロジェクト マネージャ]では、次のようにして、[Requires]フォルダや[Contains]フォルダにユニットを追加できます。

[プロジェクト マネージャ]で[Requires]フォルダに参照を追加するには:

  1. [Requires]フォルダを右クリックします。
  2. コンテキスト メニューから[参照の追加...]を選択します。
  3. [追加]ダイアログで、適切な .dcp ファイルを選択します。あるいは、ファイルが検索パスに含まれている場合は、参照するプロジェクトの .dcp ファイル名をただ入力します。
  4. これで、.dcp ファイルがプロジェクトの[Requires]フォルダに追加されます。

[プロジェクト マネージャ]で[Contains]フォルダにユニットを追加するには:

  1. [Contains]フォルダを右クリックします。
  2. 次のいずれかを行います。
    • コンテキスト メニューから[新規追加|ユニット]を選択して、[Contains]フォルダに空のユニットを追加します(コード エディタにはユニット コードのテンプレートが表示されます)。
    • コンテキスト メニューから[追加...]を選択して、[プロジェクトに追加]ダイアログを表示します。追加するユニットの .pas ファイルを選択します。

たとえば、次のプログラムで、Classes では、constsTypInfoSysUtils を(直接的または間接的に)使用しています。

package Produce;
  contains Classes;
end.

使用されるこれらのユニットごとに、警告メッセージが表示されます。

次のプログラムでは、パッケージにインポートされるこれらのユニットをすべて contains 句で明示的に指定することにより、この問題を解決しています。

package Solve;
  contains consts, TypInfo, SysUtils, Classes;
end.

関連項目