Bonjour,
Je rencontre une erreur à l'installation d'un composant que j'ai crée et je n’arrive pas à m'en sortir. :
Impossible de charger le package 'Nom' Il contient l'unité 'Stconst', qui est aussi contenue dans le package 'SysToolsCR230'
Mon code (complet en plus) :
.hpp :
.cpp
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 //--------------------------------------------------------------------------- #ifndef QrSpCodeBar_VWH #define QrSpCodeBar_VWH //--------------------------------------------------------------------------- #include <SysUtils.hpp> #include <Controls.hpp> #include <Classes.hpp> #include <QRCtrls.hpp> #include <QuickRpt.hpp> #include <StBarC.hpp> //--------------------------------------------------------------------------- class PACKAGE TQRSpCodeBar : public TQRImage { private: TStBarCode* m_StBarCode; protected: void __fastcall Paint(); void __fastcall Print(int OfsX,int OfsY); public: //Contructeurs / destructeur __fastcall TQRSpCodeBar(TComponent* Owner); __fastcall ~TQRSpCodeBar(); //Propertys __property TStBarCode* StBarCode = {read=m_StBarCode, write=m_StBarCode}; __published: }; //--------------------------------------------------------------------------- #endif
Petit début de piste, il semble que si je désactive les packages :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67 //--------------------------------------------------------------------------- #pragma hdrstop #include "QrSpCodeBar_VW.h" #pragma link "QRCtrls" #pragma link "QuickRpt" #pragma link "StBarC" #pragma package(smart_init) //--------------------------------------------------------------------------- // ValidCtrCheck est utilisée pour garantir que les composants créés n'ont pas // de fonctions virtuelles pures. // static inline void ValidCtrCheck(TQRSpCodeBar *) { new TQRSpCodeBar(NULL); } //--------------------------------------------------------------------------- __fastcall TQRSpCodeBar::TQRSpCodeBar(TComponent* Owner) : TQRImage(Owner) { m_StBarCode = new TStBarCode(this); } __fastcall TQRSpCodeBar::~TQRSpCodeBar() { delete m_StBarCode; } //--------------------------------------------------------------------------- void __fastcall TQRSpCodeBar::Paint() { //Ajout de l'image surle QR m_StBarCode->PaintToCanvas(this->Canvas, this->ClientRect); //Appel de paint de qrimage::paint(); TQRImage::Paint(); } void __fastcall TQRSpCodeBar::Print(int OfsX,int OfsY) { //Ajout de l'image surle QR m_StBarCode->PaintToCanvas(this->Canvas, this->ClientRect); //Appel de paint de qrimage::paint(); double CodeLeft, CodeTop, CodeHeight; int PixelsPerInchX, PixelsPerInchY; PixelsPerInchX = GetDeviceCaps(this->ParentReport->QRPrinter->Canvas->Handle, LOGPIXELSX); PixelsPerInchY = GetDeviceCaps(this->ParentReport->QRPrinter->Canvas->Handle, LOGPIXELSY); CodeLeft = this->ParentReport->QRPrinter->XPos(OfsX + this->Size->Left) * (1 / (long double)PixelsPerInchX); CodeTop = this->ParentReport->QRPrinter->YPos(OfsY + this->Size->Top) * (1 / (long double)PixelsPerInchY); CodeHeight = this->ParentReport->QRPrinter->YPos(OfsY + this->Size->Top + this->Size->Height) * (1 / (long double)PixelsPerInchY) - CodeTop; m_StBarCode->PaintToCanvasSize(this->ParentReport->QRPrinter->Canvas, CodeLeft, CodeTop, CodeHeight); } namespace Qrspcodebar_vw { void __fastcall PACKAGE Register() { TComponentClass classes[1] = {__classid(TQRSpCodeBar)}; RegisterComponents("TEST", classes, 0); } } //---------------------------------------------------------------------------
TurboPack SysTools CBuilder Designtime package
TurboPack SysTools CBuilder DB Designtime package
L'installation se passe bien, mais à l'utilisation (dans un projet qui demande un StBarCode donc où je ne peut pas désactiver les package en question, ... encore que ... à tester ... mais je ne suis pas certain que la BONNE solution soit là :/) le message revient...
J'ai déjà passé BEAUCOUP d'heures sur ce problème et je n'avance pas d'un pouce, si qq'un avait une solution ça serais mon sauveur ^^
Amicalement
Polack77
PS :
Juste histoire d'être transparent j'ai déjà posé cette question sur un autre forum mais je n'ai pas reçu de réponse pour le moment (je posterais bien sur la réponse des deux cotés si/quand tout sera résolu ). Et ce composant n'est pas vraiment de moi à la base je n'ai fait que reprendre l'équivalent écrit par un autre en Pascal
Partager