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
.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 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); };
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 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é.
Partager