Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1432 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  [C++Builder] Tableau d'images

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C++Builder] Tableau d'images

n°127037
lkolrn
<comment ça marche?>
Posté le 17-04-2002 à 12:43:10  profilanswer
 

j'aimerais utiliser un tableau d'images (de classe TImage) pour pouvoir en créer de façon dynamique et les insérer dans ce meme tableau...
Pour se faire, j'utilise le code suivant:
 
//déclarations globales
TImage ** tImg;
int cptImg;
 
//dans le constructeur de la Form
tImg=new TImage*;
cptImg=0;
 
//dans la fonction de création et d'insertion
tImg[cptImg++]=new TImage(this);
tImg[cptImg]->Picture->LoadFromFile("c:\\img\
img.jpg" );
tImg[cptImg]->Parent=Form1;
tImg[cptImg]->Left=100+cptLeft;
tImg[cptImg]->Top=100+cptTop;
 
//dans la fonction de fin d'exécution
int cpt;
for (cpt=0; cpt < cptImg; cpt++)
    delete(tImg[cpt]);
 
//dans la fonction de sortie du programme
delete(tImg);
 
Seulement lorsque je quitte le prog, il plante et me fé une erreur d'adresse mémoire, ki doit vraisemblablement dûe à une mauvaise manip au nivo du tableau d'images...
 
Klk1 a-t-il des solutions afin de mieux utiliser un tableau d'images créées dynamiquement...?
 
MERCI D'AVANCE

mood
Publicité
Posté le 17-04-2002 à 12:43:10  profilanswer
 

n°127039
Carbon_14
Posté le 17-04-2002 à 12:57:14  profilanswer
 

Ce qui me chagrine est l'indice
cptImg=0;
 
//dans la fonction de création et d'insertion
tImg[cptImg++]=new TImage(this);
tImg[cptImg]->Picture->LoadFromFile("c:\\img\img.jpg" );
 
Le "new" a lieu sur l'indice cptImg 0, cptImg est incrémenté par [cptImg++], puis on se sert de cptImg nouveau pour le Load...
 
Pourquoi ne pas faire
tImg[cptImg]=new TImage(this);  
tImg[cptImg]->Picture->LoadFromFile("c:\\img\
img.jpg" );  
tImg[cptImg]->Parent=Form1;  
tImg[cptImg]->Left=100+cptLeft;  
tImg[cptImg]->Top=100+cptTop;  
cptImg++;
 
Ca permet au moins d'être sur de ne pas deleter un objet pour lequel il n'y a pas eu de new de fait (=> valeur aléatoire, qq fois stratégique (j'ai réussi à faire planter mon compilo une fois comme ça !)).

n°127065
lkolrn
&lt;comment ça marche?&gt;
Posté le 17-04-2002 à 13:26:46  profilanswer
 

en effet, je me suis planté en copiant, mais pas dans mon code...
le compteur est bien incrémenté à la fin de la manipulation sur la meme case du tableau d'images...

n°127205
Carbon_14
Posté le 17-04-2002 à 15:37:56  profilanswer
 

En mettant un point d'arrêt dans la boucle de 'delete' (ou MessageBox()), faudrait voir si c'est tj pour le même indice qui provoque pb.  
Y a une "astuce" (je pratique pas (encore) le C++ => sentiment seulement).
 
Les tImg[] sont corrects en les utilisant ?
 
cptImg n'a pas été modifié en cours de "route" ?

n°127364
lkolrn
&lt;comment ça marche?&gt;
Posté le 17-04-2002 à 17:54:26  profilanswer
 

non, c bon maintenant... Merci


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  [C++Builder] Tableau d'images

 

Sujets relatifs
[C++] ouvrir différents formats d'images ??c++ builder
collaboration site web delphi, c++ builder et jbuilder[Delphi] ListView plus rapide/tableau avec zone clickable
[C++Builder] Création dynamique d'images[C++ builder 6] y'a quoi sur les 6 CD de la version entreprise ???
[C++ Builder] Pb dur à expliquer ...Changer la couleur des cases d'un tableau HTML en fct d'un fichier
[C++ Builder] API Window$ pour se mettre dans la systrayAnimation d'images dans une applet java
Plus de sujets relatifs à : [C++Builder] Tableau d'images


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR