概要
しばらく Delphi を使用していませんでしたが、カスタム ビジュアル コントロールを開発しました (私が使用した最後のバージョンは Delphi 6 でした)。
パッケージの依存関係を扱う場合、2 つの問題があります。1 つは、Delphi 環境にインストールして、コントロールをコンポーネント パレットに表示し、さらにコンポーネント エディタとプロパティ エディタを作成する方法です。
もう 1 つは、コンパイルされたパッケージを顧客のマシンに配布する場合です。
また、実行している Delphi のバージョンによっても異なります。
設計時間
カスタム パッケージを開発する場合、宛先フォルダーを示すパッケージ オプションのタブがあります。
マニュアルは通常、開発者にこれらのテキストボックスを空のままにしておくように指示しています。それはうまくいくこともあれば、うまくいかないこともあります。それぞれのテキスト ボックスに、各フォルダー パスを明示的に書き込みます。
「 .dcp」ファイル用のテキストボックス パス、「. dcu」用のテキスト ボックス パスなどがあります。
ビジュアル コントロールや、プロパティ エディターやコンポーネント エディターなどがある場合は、コードを 2 つのパッケージ (「ランタイム」と「デザインタイム」) に分割することをお勧めします。
私は通常、デルファイ (パッケージ) プロジェクトをデルファイのインストール フォルダの外に置きます。
実行時間
通常、「*.bpl」「.dcp」ファイルを Windows (32)/システム フォルダ、または同様の「DLL」Windows フォルダに配置するのが手っ取り早い方法です。
パッケージ フォルダー構造のソース コードの提案
パッケージの管理は難しい場合があります。Embarcadero と新しいバージョンの Delphi で、インストール プロセスがどの程度変更されたかはわかりません。次の図は、ソース コードを整理する方法の例です。それが役に立てば幸い。
[-]--+--c:
.....|
.....+--[-]--+--software
.............|
.............+--[+]-----java
.............|
.............+--[+]-----php
.............|
.............+--[-]--+--delphi (not the delphi folder in program files)
.....................|
.....................+--[+]-----apps (source code for delphi programs)
.....................|
.....................+--[+]-----other
.....................|
.....................+--[-]--+--packages (all delphi packages source code here)
.............................|
.............................+--[+]-----lib (a single package for non visual controls, libraries)
.............................|
.............................+--[+]-----tools (package pair for non visual tcomponent descendants)
.............................|
.............................+--[+]-----json (example)
.............................|
.............................+--[+]-----xml (example)
.............................|
.............................+--[-]--+--mycontrols (folder custom visual controls)
.............................|.......|
.............................|.......+--[-]--+--delphi40 (folder for delphi40 version of "mycontrols")
.............................|.......|.......|
.............................|.......|.......+----------dsgvclctrls40.dpk (design-time package "mycontrols")
.............................|.......|.......|
.............................|.......|.......+----------runvclctrls40.dpk (run-time package "mycontrols")
.............................|.......|.......|
.............................|.......|.......+--[+]--+--demos (individual example for each "mycontrol")
.............................|.......|.......|
.............................|.......|.......+--[+]--+--design ("*.pas" component editors destination folder)
.............................|.......|.......|
.............................|.......|.......+--[+]--+--sources ("*.pas" source code destination folder)
.............................|.......|.......|
.............................|.......|.......+--[+]--+--bin ("*.dcu" destination folder)
.............................|.......|........
.............................|.......+--[+]--+--delphi50 (folder for delphi50 version of "mycontrols")
.............................|.......|........
.............................|.......+--[+]--+--delphi60 (folder for delphi60 version of "mycontrols")
.............................|.......|........
.............................|.......+--[+]--+--delphi70 (folder for delphi70 version of "mycontrols")
.............................|................
.............................+--[-]-----etc...
乾杯。