XE3環境でのQuickReportのエラーについて

解決


yamada  2013-03-29 00:04:48  No: 44149

XE3 Pro環境で、
QuickReport5 Proをインストールし、
更にでQRGridという
QuickReportで軸線を引くことができる
コンポーネントを追加した独自パッケージをインストールしています。

そこで、QRGridを組み込んでいるプログラムを開けると
「パッケージを読み込めません。その中に
'QRDMBarcode'が含まれていますが、これはパッケージ'QR5RunDXE3'にも含まれています。」というエラーが出て、認識してくれません。

Delphi2010までは大丈夫だったのですが、回避方法をご存知のかた
教えてください。よろしくお願いします。

OSはWindows 7です。


DEKO  2013-03-29 00:48:26  No: 44150

> Delphi2010までは大丈夫だったのですが
2010 も XE3 も同じだと思いますが...?

[WEAKPACKAGEUNIT(弱いパッケージ)]
http://docwiki.embarcadero.com/RADStudio/XE3/ja/WEAKPACKAGEUNIT%EF%BC%88%E5%BC%B1%E3%81%84%E3%83%91%E3%83%83%E3%82%B1%E3%83%BC%E3%82%B8%EF%BC%89

[DENYPACKAGEUNIT 指令(Delphi)]
http://docwiki.embarcadero.com/RADStudio/XE3/ja/DENYPACKAGEUNIT_%E6%8C%87%E4%BB%A4%EF%BC%88Delphi%EF%BC%89

上記コンパイル指令で回避できませんか?


yamada  2013-03-29 01:21:12  No: 44151

DEKOさん 回答有り難うございます。

こちらの指令はどちらに記載すれば良いのですか?
QRGridのユニットの方に記載したところ、
パッケージコンパイル時に、QuickReportのコンポーネントを追加します。
のメッセージが出力されてしまいました。


DEKO  2013-03-29 01:55:07  No: 44152

> パッケージコンパイル時に、QuickReportのコンポーネントを追加します。
> のメッセージが出力されてしまいました。
...ダメでしたか。

(A というパッケージに含まれる ユニット C をパッケージ B で必要とするという前提で)

では、B のパッケージの Requires に A(.dcp) を追加してみてください。

# パッケージ B のプロジェクトには、
# 直接、ユニット C を含まないようにしてください。


yamada  2013-03-29 02:32:46  No: 44153

DEKOさん
ありがとうございます。

まず、B(QuickReport) のパッケージをコンパイルすることができません。。
Aのcontainsでエラーがでます。

A自体は問題なくコンパイルできます。

難しいですね。。もう一度Delphi再インストールからやってみます。


DEKO  2013-03-29 09:33:35  No: 44154

ちょっとだけ頭の中で整理してみました。

1.QR5RunDXE3 (QuickReport の実行時パッケージ) QRDMBarcode が含まれる
2.QR5???DXE3 (QuickReport の設計時パッケージ)
3.QRGrid が含まれる (設計/実行時) パッケージ

という事なのでしょうかね?

> QRGridを組み込んでいるプログラムを開けると
なので、QRGrid または関連ファイルが QRDMBarcode を参照していると、
設計時に、QuickReport の実行時パッケージが必要となってしまうため、
あのようなエラーになってしまうと思います。

ただ、解せないのは 2010 では OK だったという事なのです。
QRGrid を含むパッケージの構成が変わっていないとすると、
XE3 でのみエラーになる事は考えにくいので。
もちろん、XE3 用のQuickReport のパッケージに不備がある可能性はあります。

# QRDMBarcode がソースで提供されているのなら、
# こちらに {$WEAKPACKAGEUNIT ON} してやればいいような気もします。

QuickReport の現物を所持していれば、もう少し的を射た回答ができるのかもしれませんが、
所持していないのでフワフワした回答になってます。ゴメンナサイ m(_ _)m


yamada  2013-04-01 18:42:56  No: 44155

DEKOさん
度々ありがとうございます。

1.QR5RunDXE3 (QuickReport の実行時パッケージ) QRDMBarcode が含まれる
2.QR5DesignDXE3 (QuickReport の設計時パッケージ)
3.QRGrid が含まれる (設計/実行時) パッケージ

でOKです。

2010では、だましだましですが、
QuickReport⇒独自パッケージの入れる順番で誤魔化せてました。

QRDMBarcodeに {$WEAKPACKAGEUNIT ON}を入れることにより
メッセージは出なくなりましたが、他のプログラムも同様に使用しており、
メッセージ出力されている分全てに付け足してみましたが、
どれかで引っかかるようです。

とりあえず、QRGridを使用しているプログラムが1つの為、
パッケージから削除し、
QuickReport側で代替できそうなコンポーネントがあったので、
そちらに置き換えていこうかと思ってます。 

お時間ありがとうございました。


yamada  2013-04-02 20:39:20  No: 44156

ありがとうございました


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加