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 :
//---------------------------------------------------------------------------
#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
.cpp
//---------------------------------------------------------------------------
#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);
}
}
//---------------------------------------------------------------------------
Si il semble que si je désactive les packages :
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) le message revient...
J'ai déjà passé BEAUCOUP d'heures sur ce problème et je n'avance pas d'un pouce, qi qq'un avait une solution ça serais mon sauveur ^^
Amicalement
Polack77
PS :
Juste histoire d'être transparent j'ai 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