Tableau de TImage

Résolu
Signaler
Messages postés
28
Date d'inscription
jeudi 7 janvier 2010
Statut
Membre
Dernière intervention
7 février 2013
-
Messages postés
3834
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
20 octobre 2021
-
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

Messages postés
3834
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
20 octobre 2021
124

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]