2009-06-28 8 views
9

私は、QCからDelphi 2009ユニット(DBClientの場合)に修正を適用したいと思います。私はユニットを別のディレクトリにコピーしてコピーを変更する必要があることを知っています。どのようにしてDelphiにそのユニットをコンパイルして、それが既に存在するDCUのために使用するのですか?VCLから特定のユニットを再コンパイルするには?

答えて

16

元の.Pasファイルを変更しない場合は、.Pasファイルを自分のアプリケーションフォルダにコピーしてから、ビルドプロジェクトを選択すると、アプリケーションフォルダに新しいdcuファイルが作成されます。元のものの代わりに使用することができます。

+15

他のVCLユニットが変更されたVCLユニットに依存している場合には、これが機能しないことに注意してください。その場合、再コンパイルする必要があります。それ以外の場合、アプリケーションのリンクは失敗します。 – mghie

+2

ランタイムパッケージを使用し、 'Debug DCUsを使用する' –

2

これは最後の手段です(CodeGearではサポートしていません)。しかし、私は必要に応じてMohammedと似たようなことをします。変更されたユニットをアプリケーションフォルダに置くのではなく、ライブラリコードの残りの部分をそれらのフォルダに入れ、私のライブラリパスにこのフォルダを含めて、すべてのプロジェクトで使用します。また、複数の(恐らくわずかに異なる)コピーをぶら下げるのを防ぐこともできます。

また、何が変更されたかを確認するために更新をチェックするようにしました。変更されたユニットを削除するか、CodeGearの新しい(おそらくもっと良い)ユニットに変更を適用します。

0

私は決してこれをやったことはありませんが、{RAD}\source\rtlのプロジェクトとバッチビルドスクリプトがあります。 RTL関数を簡単に再コンパイルすることができます。他のユニットは簡単に再コンパイルする必要があります。

変更するローカルがローカルで、ユニットが他のRTL/VCLユニットで広く使用されていない場合、最も簡単な方法は、修正されたユニットのコピーを標準の場所とは別に配置することです。

もう1つのオプションは、別の方法として実行時パッチを適用することです。

関連する問題