IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SL & STL C++ Discussion :

Comment insérer une classe dans un vector


Sujet :

SL & STL C++

  1. #1
    Débutant Avatar de razily
    Inscrit en
    Février 2009
    Messages
    376
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 376
    Points : 154
    Points
    154
    Par défaut Comment insérer une classe dans un vector
    Bonjour à tous ,
    j'aimerai bien comprendre l'utlisation du vector dans la librairie STL et notamment sur la manière d'insérer une classe particulière au lieu d'un simple type (int -char ) voici 2 codes ,l'une se base sur une int (çà marche) et l'autre ce que je voulais faire avec une simple classe et il ya un problème

    ici déclaration d'un matrice à 2 dimensions mais de simple type entier et çà marche
    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
     
    #include <iostream>
    #include <vector>
     
    using namespace std;
     
    main()
    {
       // Declare size of two dimensional array and initialize.
       vector< vector<int> > vI2Matrix(3, vector<int>(2,0));    
     
       vI2Matrix[0][0] = 0;
       vI2Matrix[0][1] = 1;
       vI2Matrix[1][0] = 10;
       vI2Matrix[1][1] = 11;
       vI2Matrix[2][0] = 20;
       vI2Matrix[2][1] = 21;
     
       cout << "Loop by index:" << endl;
     
       int ii, jj;
       for(ii=0; ii < 3; ii++)
       {
          for(jj=0; jj < 2; jj++)
          {
             cout << vI2Matrix[ii][jj] << endl;
          }
       }
    }
    mais ici je voudrai faire la même chose sauf qu'à la place des valeurs entiers , je voudrai mettre un élement d'une classe qui est de même type également (entier) mais ce qui est essentiel c'est la manière d'insérer l'objet et qu'on pourra utiliser push_back et push_front

    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
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
     
    #include <iostream>
    #include <vector>
     
    using namespace std;
     
    class Cordonnee{
    	private :
    	int element;
    	public:
    	Cordonnee();
    	Cordonnee(int x);
    	~Cordonnee();
    	int getelement(){return element;}
     
    	};
     
    	Cordonnee::Cordonnee(int x){
    		element = x ;
     
    		}
        Cordonnee::Cordonnee(){
    		element = 0 ;
     
    		}
     
    	   Cordonnee::~Cordonnee(){}
     
    int main()
    {
     
     
       // Declare size of two dimensional array and initialize.
       vector< vector<Cordonnee*> > vI2Matrix(3, vector<Cordonnee>(2,0));  
     
         Cordonnee P1 ,P2(100);
     
       vI2Matrix[0][0] = P1.getelement();
       vI2Matrix[0][1] = P2.getelement();
       vI2Matrix[1][0] = P1.getelement();
       vI2Matrix[1][1] = P2.getelement();
      // vI2Matrix[2][0] = 20;
       vI2Matrix[2][1] = P1.getelement();
     
       cout << "Loop by index:" << endl;
     
       int ii, jj;
       for(ii=0; ii < 3; ii++)
       {
          for(jj=0; jj < 2; jj++)
          {
             cout << vI2Matrix[ii][jj] << endl;
          }
       }
       return 0;
    }
    j'ai un message d'erreur de ce genre :
    essaiVector.cpp:53: erreur: no matching function for call to «std::vector<std::vector<Cordonnee*, std::allocator<Cordonnee*> >, std::allocator<std::vector<Cordonnee*, std::allocator<Cordonnee*> > > >::vector(int, std::vector<Cordonnee, std::allocator<Cordonnee> >)»

    essaiVector.cpp:57: erreur: invalid conversion from «int» to «Cordonnee*»
    en fait , est ce qu'on a le droit de mettre quelque chose de ce genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    // Declare size of two dimensional array and initialize.
       vector< vector<Cordonnee> > vI2Matrix(3, vector<Cordonnee>(2,0));  
     
    et comme çà on pourra faire par exemple ;
    Cordonnee P1;
     
    vI2Matrix.push_back(P1);
    merci d'avance pour vos réponses

  2. #2
    Membre éclairé

    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    717
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 717
    Points : 858
    Points
    858
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    vector< vector<Cordonnee*> > vI2Matrix(3, vector<Cordonnee>(2,0));
    L'étoile est en trop, il n'y a aucune raison d'utiliser des pointeurs ici.

  3. #3
    Débutant Avatar de razily
    Inscrit en
    Février 2009
    Messages
    376
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 376
    Points : 154
    Points
    154
    Par défaut
    oui et même si je l'enlève en faisant çà :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     vector< vector<Cordonnee> > vI2Matrix(3, vector<Cordonnee>(2,0));
    j'ai toujours cette erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    /usr/include/c++/4.2/bits/ostream.tcc:120: note:                 std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(std::basic_streambuf<_CharT, _Traits>*) [with _CharT = char, _Traits = std::char_traits<char>]
    je crois que cette ligne ; il indique une erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     cout << vI2Matrix[ii][jj] << endl;

  4. #4
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    Salut,
    Citation Envoyé par razily Voir le message
    je crois que cette ligne ; il indique une erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     cout << vI2Matrix[ii][jj] << endl;
    vI2Matrix[ii][jj] retourne un objet du type Cordonnee. Il te faut donc spécialiser la sortie de << : F.A.Q. Comment utiliser les flux pour afficher ou saisir mes objets ?

  5. #5
    Débutant Avatar de razily
    Inscrit en
    Février 2009
    Messages
    376
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 376
    Points : 154
    Points
    154
    Par défaut
    oui , vous avez parafaitement raison , il suffit que je surcharge l'opérateur << comme suit et çà marche

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    ostream &operator<<(ostream &out ,Cordonnee &P1){
     
    	cout << P1.getelement();
     
    	}
    mais comment je vais faire si je veux écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     vI2Matrix.push_back(P2);

  6. #6
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    Citation Envoyé par razily Voir le message
    mais comment je vais faire si je veux écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     vI2Matrix.push_back(P2);
    Tu as déclaré vI2Matrix comme un vecteur de vecteur. Donc, si tu veux rajouter un point, tu dois savoir dans quelle ligne d'abord :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    vI2Matrix[0].push_back(P2);
    Ou rajouter un vecteur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    vI2Matrix.push_back(std::vector<Coordonnees>());

  7. #7
    Débutant Avatar de razily
    Inscrit en
    Février 2009
    Messages
    376
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 376
    Points : 154
    Points
    154
    Par défaut
    oui c'est ce que j'ai fait mais le résultat affiché ne convient pas
    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
     
    // Declare size of two dimensional array and initialize.
       vector< vector<Cordonnee> > vI2Matrix(3, vector<Cordonnee>(2,0));  
      // vector <Cordonnee> SS;
       Cordonnee P1(200) ,P2(10);
     
     
       //vI2Matrix[0][0] = P1.getelement();
     
      vI2Matrix[0].push_back(P1);
       vI2Matrix[0][1] = P2.getelement();
       vI2Matrix[1][0] = P1.getelement();
       vI2Matrix[1][1] = P2.getelement();
      vI2Matrix[2][0] = 20;
       vI2Matrix[2][1] = P2.getelement();
     
       cout << "Loop by index:" << endl;
     
       int ii, jj;
       for(ii=0; ii < 3; ii++)
       {
          for(jj=0; jj < 2; jj++)
          {
             cout << vI2Matrix[ii][jj] << endl;
     
          }
       }
    resultat
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    loop by index :
    0
    10
    200
    10
    20
    10
    pour le second , j'ai suivi un peu ici :http://cpp.developpez.com/faq/cpp/?page=STL
    dans cet [Exemple] Comment trier une séquence selon un critère personnalisé ? il insère une structure A
    et qui correspond bien à ce que vous avez dit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    vI2Matrix.push_back(std::vector<Coordonnees>());
    voici le bout du code
    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
      // vector <Cordonnee> SS;
       Cordonnee P1(200) ,P2(10);
       
    
       //vI2Matrix[0][0] = P1.getelement();
       
      vI2Matrix.push_back(Cordonnee(100));
       vI2Matrix[0][1] = P2.getelement();
       vI2Matrix[1][0] = P1.getelement();
       vI2Matrix[1][1] = P2.getelement();
      vI2Matrix[2][0] = 20;
       vI2Matrix[2][1] = P2.getelement();
    
       cout << "Loop by index:" << endl;
    
       int ii, jj;
       for(ii=0; ii < 3; ii++)
       {
          for(jj=0; jj < 2; jj++)
          {
             cout << vI2Matrix[ii][jj] << endl;
            
          }
       }
    resultat:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    /usr/include/c++/4.2/bits/stl_vector.h:597: note: candidats sont: void std::vector<_Tp, _Alloc>::push_back(const _Tp&) [with _Tp = std::vector<Cordonnee, std::allocator<Cordonnee> >, _Alloc = std::allocator<std::vector<Cordonnee, std::allocator<Cordonnee> > >]

    est ce qu cela veut dire que pour afficher il faudrai passer par un itérateur
    genre :
    vector <Cordonnee>::const_iterator i;
    for(i=vI2Matrix.begin();i<vI2Matrix.end();i++)
    {
    cout << *i ; // là aussi c'est impossible de l'afficher
    est ce qu'il faudrait aussi surcharger ??

    }

  8. #8
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    type var;
    std::vector<type> vect(3,var); crée un vecteur avec 3 éléments qui reçoivent une copie de var.
    vect.push_back(var) rajoute un nouvel élément au vecteur.
    Donc quand tu fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    type var;
    std::vector<type> vect(3,var);
    vect.push_back(var)
    vect se retrouve avec 4 éléments. Ceci, tu le comprends, explique la présence de ton 0 en trop dans ton affichage.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    type trucmuche;
    std::cout<<trucmuche
    appelle
    std::ostream& operator<<(std::ostream&, type [const&]);
    Donc, pour :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    std::vector<std::vector<type> > v;
    std::cout<<v; // 1
    std::vector<std::vector<type> >::[const_]iterator it = v.begin();
    std::cout<<v[0]; // 2
    std::cout<<(*it); // 2
     
    std::vector<type>::[const_]iterator it2 = v.begin();
    std::cout<<v[0][0]; // 3
    std::cout<<(*it2); // 3
    les appels sont :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    std::ostream& operator<<(std::ostream&, std::vector<std::vector<type> > const &); // 1
    std::ostream& operator<<(std::ostream&, std::vector<type>  const &); // 2
    std::ostream& operator<<(type const &); // 3

  9. #9
    Débutant Avatar de razily
    Inscrit en
    Février 2009
    Messages
    376
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 376
    Points : 154
    Points
    154
    Par défaut
    finalement , j'ai opté pour une méthode plus simple
    c'est à dire en déclarant vector <char> et en mettant une étiquette dedans !
    en fait c'est pour un projet de jeu d'échec et les étiquettes correspondent à une caractère ex : R (roi blanc) D(dame blanc )
    mais je suis confronté à un autre problème nottament sur la constitution de la matrice lui même !

    voici un bout du code auquel j'ai dû mal à trouver l'erreur :
    les autres pions ont été tous placés à leur place sauf les pions qui en voyant le résultat ne me semble pas du tout logique .
    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
    //ici 10 car il y a les coordonnées comme a-b-c-d etc ..
    
    std::vector<std::vector<char> > SS(10,std::vector<char>(10,'_'));
    
    Plateau::Plateau() {
    
              Case PionB [8] ; //un tableau où je stocke les pions blancs 
              Case PionN [8] ; //çà c'est pour les noirs 
    
    // ici j'essai de mettre les coordonnées et l'étiquette adéquate aux pions noirs
    // à mettre ligne 2 de col 1 à 8
     for(int j =1;j<9;j++){
              PionN[j].SetLigne(2);
              PionN[j].SetColonne(j) ;
              PionN[j].SetEtiquette('p');
    
              cout << "noir"<<PionN[j].GetEtiquette()<<"créer"<<"ligne:" <<PionN[j].GetLigne()<<"colonne:"<<PionN[j].GetColonne() << endl;
          }
    
     cout << endl;
    
    //pareil pour les pions blancs occupe toute la ligne 7 et col 1 à 8
     for(int j =1;j<9;j++){
              PionB[j].SetLigne(7);
              PionB[j].SetColonne(j) ;
              PionB[j].SetEtiquette('P');
    
             cout << "blanc "<<PionB[j].GetEtiquette()<<"créer"<<"ligne:" <<PionB[j].GetLigne()<<"colonne:"<<PionB[j].GetColonne() << endl;
    
              //cout << PionB[j].GetEtiquette();
    
          }
    le résultat de ce code :
    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
     
    noir p créerligne: 2 colonne:1
    noirpcréerligne:2colonne:2
    noirpcréerligne:2colonne:3
    noirpcréerligne:2colonne:4
    noirpcréerligne:2colonne:5
    noirpcréerligne:2colonne:6
    noirpcréerligne:2colonne:7
    noirpcréerligne:2colonne:8
     
    blanc Pcréerligne:7colonne:1
    blanc P créer ligne:7 colonne:2
    blanc Pcréerligne:7colonne:3
    blanc Pcréerligne:7colonne:4
    blanc Pcréerligne:7colonne:5
    blanc Pcréerligne:7colonne:6
    blanc Pcréerligne:7colonne:7
    blanc Pcréerligne:7colonne:8
    vous remarquerez que le tableau est affecté à leur valeur respective
    la suite du code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    // j'ai liés  tous les autres pièces au plateau comme suit et çà marche sauf //pour les pions noirs et blancs 
    // ici SS[ligne][colonne] = 'etiquette'(de type char) met l'etiquette aux //cordonnées (ligne,colonne)
       SS[FouB1.GetLigne()][FouB1.GetColonne()] = FouB1.GetEtiquette();
        SS[FouB2.GetLigne()][FouB2.GetColonne()] = FouB2.GetEtiquette();
        SS[CavalB1.GetLigne()][CavalB1.GetColonne()] = CavalB1.GetEtiquette();
    
    // maintenant pour les pions :cry:
    //j'ai essayé çà mais il met dans le mauvais placement
     // SS[PionB[0].GetLigne()][PionB[0].GetColonne()]= PionB[0].GetEtiquette();
    
    // alors pour comprendre j'ai fais un affichage du contenu du tableau //PionBlanc :koi: et à ma surprise : coordonnées erronée et étiquette //petit 'p' qui correspond pour les noirs :aie:
        cout << "ligne"<<PionB[0].GetLigne()<< "colonne"<<PionB[0].GetColonne()<<"etiquette"<< PionB[0].GetEtiquette()<< endl ;
    resultat:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    
    ligne 2 colonne 8 etiquette p
    Case.h
    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
    44
    45
     
    #ifndef _CASE_H
    #define	_CASE_H
     
    class Case {
    public:
        Case();
        Case(int col , int lin, char etiq);
        Case(const Case& orig);
        virtual ~Case();
     
     
        int GetColonne() const {
            return colonne;
        }
     
        void SetColonne(int colonne) {
            this->colonne = colonne;
        }
     
        char GetEtiquette() const {
            return etiquette;
        }
     
        void SetEtiquette(char etiquette) {
            this->etiquette = etiquette;
        }
     
        int GetLigne() const {
            return ligne;
        }
     
        void SetLigne(int ligne1) {
            this->ligne = ligne1;
        }
     
        private:
        int ligne ;
        int colonne ;
        char etiquette;
     
     
    };
     
    #endif	/* _CASE_H */
    Case.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
     
     
    Case::Case() {
     
    }
     
     
     Case::Case(int col , int lin,char etiq):colonne(col),ligne(lin),etiquette(etiq)
     {}
     
    Case::Case(const Case& orig) {
        this->colonne = orig.colonne;
        this->etiquette = orig.etiquette;
        this->ligne = orig.ligne;
    }
     
    Case::~Case() {
    }
    suite fichier plateau
    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
     
    Plateau::Plateau(const Plateau& orig) {
    }
     
    Plateau::~Plateau() {
    }
     
     
    ostream &operator<<(ostream& out , Case &P1){
     
        out << P1.GetEtiquette();
     
    	}
    void Plateau::Affichage(){
        int i ,j;
     
        for( i= 0;i<10;i++){
        for( j =0;j<10;j++){
    			std::cout << SS[i][j] <<" ";
    		}
         cout << endl ;
     
        }
    }
    main :
    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
     
    #include <iostream>
     
    #include "Plateau.h"
    using namespace std;
     
    /*
     * 
     */
    int main(int argc, char** argv) {
     
     
        Plateau P1 ;
        P1.Affichage();
     
        return (EXIT_SUCCESS);
    }

  10. #10
    Débutant Avatar de razily
    Inscrit en
    Février 2009
    Messages
    376
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 376
    Points : 154
    Points
    154
    Par défaut
    Non , çà y est , j'ai trouvé c'est une affaire de boucle

    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
     
    //pour les pions noirs 
     //   Case ligne7(2,0,'7');
          int j = 1;
          for(int i = 0;i<8;i++){
              PionN[i].SetLigne(2);
              PionN[i].SetColonne(j) ;
              PionN[i].SetEtiquette('p');
              j++;
     
           //   cout << PionN[j].GetEtiquette();
              cout << "noir"<<PionN[i].GetEtiquette()<<"créer"<<"ligne:" <<PionN[i].GetLigne()<<"colonne:"<<PionN[i].GetColonne() << endl;
          }
     
     
    //pour les pions blancs 
     
     //2 ème rangée blanc
     
             j = 1;
          for(int i = 0;i<8;i++){
              PionB[i].SetLigne(7);
              PionB[i].SetColonne(j) ;
              PionB[i].SetEtiquette('P');
              j++;
     
           //   cout << PionN[j].GetEtiquette();
              cout << "noir"<<PionB[i].GetEtiquette()<<"créer"<<"ligne:" <<PionB[i].GetLigne()<<"colonne:"<<PionB[i].GetColonne() << endl;
          }
     
             cout << endl;

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 10
    Dernier message: 08/02/2006, 19h42
  2. Comment insérer une form dans une autre form ?
    Par marsupilami34 dans le forum Composants VCL
    Réponses: 4
    Dernier message: 19/07/2005, 11h15
  3. Comment insérer une image dans un graphique?
    Par Leclair2000 dans le forum Composants VCL
    Réponses: 3
    Dernier message: 23/05/2005, 09h29
  4. Comment insérer une image dans une cellule d'un TDrawGrid ?
    Par kanux dans le forum Composants VCL
    Réponses: 4
    Dernier message: 15/01/2005, 18h58
  5. [Crystal Reports 9] comment insérer une image dans Détails
    Par VVE dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 22/10/2003, 17h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo