Tableau de TImage

Résolu
Tom59247 Messages postés 28 Date d'inscription jeudi 7 janvier 2010 Statut Membre Dernière intervention 7 février 2013 - 17 mars 2010 à 10:42
cptpingu Messages postés 3835 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 1 novembre 2022 - 17 mars 2010 à 11:35
Bonjour tlm, dans le cadre d'un projet, je dois gérer un affichage graphique d'un système industriel.
Dans cette affichage j'ai crée des objets Vannes et Pompes, jusque là aucun soucis.
Afin d'améliorer mon code(pour des questions esthétismes et de rapidité)je souhaiterais créer 2tableaux qui pourrait gérer ces objets( TabVanne et TabMoteur donc des tableaux qui gère des objets de Type TImage)

Pour un peu mieux comprendre voici mon code actuel
.h
         Moteur * Moteur1;
         Moteur * Moteur2;
         Moteur * Moteur3;
         Vanne * Vanne1;
         Vanne * Vanne2;
         Vanne * Vanne3;
         Vanne * Vanne4;
.cpp
        Moteur1 = new Moteur(Moteur_Arret_1,Timer_Pompe1);
        Moteur2 = new Moteur(Moteur_Arret_2,Timer_Pompe2);
        Moteur3 = new Moteur(Moteur_Arret_3,Timer_Pompe3);
        Vanne1 = new Vanne(Vanne_1);
        Vanne2 = new Vanne(Vanne_2);
        Vanne3 = new Vanne(Vanne_3);
        Vanne4 = new Vanne(Vanne_4);


et un exemple d'une méthode

void TIHM_Syn::Reset()
{
        Moteur_Arret_1->Picture->LoadFromFile("./Jpeg/Moteur_arreter.jpg");
        Moteur_Arret_2->Picture->LoadFromFile("./Jpeg/Moteur_arreter.jpg");
        Moteur_Arret_3->Picture->LoadFromFile("./Jpeg/Moteur_arreter.jpg");
        Vanne1->VanneDown();
        Vanne2->VanneDown();
        Vanne3->VanneDown();
        Vanne4->VanneDown();
}

Je souhaiterais grâce au tableau par exemple réaliser une méthode Reset du genre ,

void Reset()
int Nbr_Vanne = 11;

for(int i =0;i<=Nbr_Vanne;i++)
{
TabVanne[i].VanneFermer(); //Méthode qui passe une vanne a l'état fermer
}

Mais j'ai des gros problèmes pour créer mes tableaux .
Si quelqu'un peut éclairer ma lanterne...
Merci d'avance :)

1 réponse

cptpingu Messages postés 3835 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 1 novembre 2022 124
17 mars 2010 à 11:35

Moteur * Moteur1;
Moteur * Moteur2;
Moteur * Moteur3;
Vanne * Vanne1;
Vanne * Vanne2;
Vanne * Vanne3;
Vanne * Vanne4;


Tu remplaces par:


std::vector<Moteur*> _moteurs;
std::vector<Vanne*> _vannes;


Puis ça:

Moteur1 = new Moteur(Moteur_Arret_1,Timer_Pompe1);
Moteur2 = new Moteur(Moteur_Arret_2,Timer_Pompe2);
Moteur3 = new Moteur(Moteur_Arret_3,Timer_Pompe3);
Vanne1 = new Vanne(Vanne_1);
Vanne2 = new Vanne(Vanne_2);
Vanne3 = new Vanne(Vanne_3);
Vanne4 = new Vanne(Vanne_4);


En:

_moteurs.push_back(new Moteur(Moteur_Arret_1,Timer_Pompe1));
_moteurs.push_back(new Moteur(Moteur_Arret_2,Timer_Pompe2));
_moteurs.push_back(new Moteur(Moteur_Arret_3,Timer_Pompe3));
_vannes.push_back(new Vanne(Vanne_1));
_vannes.push_back(new Vanne(Vanne_2));
_vannes.push_back(new Vanne(Vanne_3));
_vannes.push_back(new Vanne(Vanne_4));


Enfin, tu pourras faire:

const int nbVanne = _vannes.size();
for(int i = 0; i < nbVanne; ++i)
{
  _vannes[i].VanneFermer(); //Méthode qui passe une vanne a l'état fermer
} 

_____________________________________________
Historique de mes créations, et quelques articles:[ http://0217021.free.fr/portfolio
http://0217021.free.fr/portfolio]
3