2016-04-26 7 views
2

私はいつもdcuファイルはコンパイル時に必要とされるものだとみなしました。少なくとも、ソースファイル(pasとdfm)は必須ではありません。dcuが存在する場合、Delphiはコンパイル時にdfmを必要としますか?

私は次のような状況があります。それぞれのフォームを含む2つのユニットと

  • A Delphiアプリケーションを:UMainはUSubFormがフォームTSubForm
  • が含まれてい
  • Tmainの
  • フォーム含まれてい
    • USubFormはUMainのuses節にあります
    • このプログラムをコンパイルすると、USubForm.pasとUSubForm.dfmが削除され、コンパイルされたUSubForm.dcuに置き換えられました。
    • コンパイルは今、エラーになり:私だけUSubForm.pasを削除する(しかしUSubForm.dcuの隣の場所でUSubForm.dfmファイルを残す)場合、コンパイルが働くDCC : error : E1026 File not found: 'USubForm.dfm'
    • 注こと。

    わかりません。私はdcuファイルが必要なものであると思った(つまり、pas + dfmファイルのコンパイル済みバージョン)。

    私はDelphi XE2を使用しています(すぐにアップグレードする必要がありますが、これは私の質問とは関係ありません)。

    P.S.いくつかのコンテキスト:私は社内のDelphiライブラリとアプリケーション用の継続的な統合システムをセットアップしようとしています。私はライブラリのソースファイルを必要とせずにアプリケーションをコンパイルできるようにしたいと思います。

    答えて

    5

    はい、プロジェクトをリンクするときにDFMファイルが必要です。これはリソースファイルのように扱われます。思い出したように、コンパイル時にはでなく、が必要です。

    +0

    私はいつも間違っています。それはリソースファイルのように扱われることが理にかなっています。そして確かに、それはリンク中であり、コンパイル中ではありません。ありがとう。 – Roel

    +0

    DCUはPASファイルのみのコンパイル済みコードですが、DFMは含まれていません。 –

    関連する問題