Utiliser un TObject (ici un TImage) dans une classe indépendante d'un Form
Je suis en train de développer un projet qui necessiste le chargement et la sauvegarde d'images à partir et vers le disque dur.
Apres avoir parcouru la FAQ, je n'ai pas trouvé de solution à mon probleme.
Ma classe image encapsule un TImage pour pouvoir manipule les images.
grosso modo ca donne :
.h
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| class Image
{
String Id_Image;
String Id_Sequence;
double Largeur_onde;
double Longueur_onde;
TImage* Img;
public:
// Constructeur par recopie en profondeur
Image(const Image &ImgSource);
// Opérateur = (recopie en profondeur)
Image& operator=(const Image &ImgSource);
// Destructeur en profondeur
~Image(){delete []Img;}
Image(const String &Id_Seq):Id_Image(NULL),Id_Sequence(Id_Seq),Img(NULL){}
void Image::Sauve(const String &chemin);
}; |
.cpp
Code:
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
| Image::Image(const Image & ImgSource)
{
TImage *pImg;
pImg= new TImage(???);
Img=pImg;
}
Image& Image::operator=(const Image &ImgSource)
{
if (this!=&ImgSource)
{
delete []Img;
TImage *pImg;
pImg= new TImage(???);
Img=pImg;
}
return * this;
}
void Image::Set(int no_image, const double &larg_onde, const double &long_onde)
{
Img=new TImage(???);
//création de l'id de l'image
Largeur_onde = larg_onde;
Longueur_onde = long_onde;
Set_Id(no_image);
}
Image& Image::Acquiert()
{
String chemin="C:\\test.bmp"
Img->Picture->LoadFromFile(chemin.c_str()); // errreur a la compil
return *this;
}
void Image::Sauve(const String &chemin)
{
String file = chemin;
file += Id_Image;
file += ".bmp";
Img->Picture->SaveToFile(file);
} |
Mon problème est selon moi que je ne dispose pas de owner pour mon image.
Comment donner comme owner le TForm qui utilise ma classe?
Peut être faut il utiliser des variables extern? (je ne maitrise pas très bien cela.
En espérant que ca pourra m'aider ainsi qu'au reste de la communauté.