これまでの作業で (Win32 アプリケーション用) コンポーネントとして使えるようにはなりましたが、設計時パッケージと実行時パッケージで重複してユニットを登録しています。これでは双方に同一のユニットが含まれる事になり、パッケージが肥大化してしまいます。
そこで、実行時パッケージを設計時パッケージから参照するようにしてみます。こうすれば重複したユニットが含まれる事もなく、パッケージの肥大化を防ぐ事が出来ます。
1.Delphi で LR2_170.groupproj を開く。
2.設計時パッケージに含まれるユニットのうち、
- LightRepReg.pas
- LRSplReg.pas
- LRVer.pas
上記 "コンポーネント登録ユニット" と "コンポーネントエディタユニット" を除いてすべて削除。
3.同様に Requires からコンポーネントが使っていたパッケージを削除。
具体的には "DesignIDE.dcp" だけ残す (コンポーネントエディタには DesignIDE が必要なため)。
4.Requires を右クリックして "参照の追加"
5.パッケージ名に "rtlLR2_170" と直接入力し、必須 (依存) パッケージとして実行時パッケージを指定する。
上記作業で、設計時パッケージのツリーは以下の画像のようになります。
6.Delphi 2010 以降なら dclLR2_170.bpl を右クリックし、
1.アンインストール 2.クリーンナップ 3.インストール
で、コンポーネントの再インストールを行う。
Delphi 2009 には "アンインストール" がないので、
1.[コンポーネント | パッケージのインストール] で LightReport2 のパッケージのチェックを外す。 2.クリーン 3.インストール
このような手順となる。
この "アンインストール->クリーンナップ->インストール" の手順のうち、クリーンナップ (或いはアンインストール) を省いても正しくインストールされる事が多いのですが、私はトラブルを避けるためにルーチンワークとしてこの3点を1セットにしてパッケージを再インストールしています。
64bit 化が必要ないのであれば、ここまでの作業を必要なすべてのバージョンのパッケージに対して行ってください。先に断っておきますが、これ以降の 64bit 化作業を Delphi 2009~XE のパッケージに対して行っても何ら問題はありません。
|