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

C++Builder Discussion :

Creation dynamique d'un tableau de TShape


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de uriotcea
    Homme Profil pro
    Ingénieur / physicien
    Inscrit en
    Septembre 2003
    Messages
    1 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur / physicien
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 301
    Par défaut Creation dynamique d'un tableau de TShape
    Bonjour,

    J'aimerai créer dynamiquement un tableau de TShape mais je n'y arrive pas

    Je fais ca:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    int N=100;
    TShape **MyShape;
    MyShape = new *TShape[N];
    Mais ca ne compile pas. Comment puis-je faire

    Merci d'avance

  2. #2
    Expert confirmé

    Avatar de pottiez
    Homme Profil pro
    Développeur C++
    Inscrit en
    Novembre 2005
    Messages
    7 152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Par défaut
    essaye plutot comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    int i ;
    TShape * MyShape[100] ;
    for(i=0;i<100;i++){
    MyShape[i] = new TShape ;
    }

  3. #3
    Membre éprouvé Avatar de uriotcea
    Homme Profil pro
    Ingénieur / physicien
    Inscrit en
    Septembre 2003
    Messages
    1 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur / physicien
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 301
    Par défaut
    Merci de ton aide
    Mais en quoi c'est dynamique!
    Ici c'est "100" et ca ne peut evoluer que en recompilant si je me trompe pas

  4. #4
    Expert confirmé

    Avatar de pottiez
    Homme Profil pro
    Développeur C++
    Inscrit en
    Novembre 2005
    Messages
    7 152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Par défaut
    c'est dynamique parce que c'est des pointeur et que tu les allous lorsque tu en as besoins et les delete lorsque tu en a plus besoin, pas comme des objets qui sont créé au lancement du programme et supprimé à l'arret du programme, sinon tu dois pouvoir fair comme ceci mais je suis plus sur du code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    int i = 100 ;
    TShape * MyShape ;
    MyShape = new TShape[i] ;

  5. #5
    Membre Expert

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 407
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 407
    Par défaut
    Salut !

    Si la question porte sur un nombre inconnu de Shapes, tu peux éventuellement utiliser une TList :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TList *Shapes = new TList;
    L'ajout d'un TShape :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Shapes->Add(new TShape(this));
    L'accès à un élement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (TShape*) shape = (TShape*)Shapes->Items[n];
    Ne pas oublier de détruire la liste.
    Comme les shapes ont un propriétaire qui se charge de les détruire, le code tient en deux lignes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Shapes->Clear();
    delete Shapes;
    A plus !

  6. #6
    Membre éprouvé Avatar de uriotcea
    Homme Profil pro
    Ingénieur / physicien
    Inscrit en
    Septembre 2003
    Messages
    1 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur / physicien
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 301
    Par défaut
    Hé Les gas, vous les essayer vos suggestions!!!!
    - [POTTIER] Comme je l'ai deja dis, La premiere ne permet pas de faire varier dynamqiuement le 100
    - [POTTIER] LA second solution le serait effectivement si le constructeur de TShape ne demandait pas un argument -> donc ca compile pas!
    - [ ENDERSUN] Et la derniere ne compile pas non plus variable "shape" inconnu

    Merci tout de meme de votre aide, mais je suis sure qu'il y a une solution

Discussions similaires

  1. creation dynamique de id d'un tableau
    Par hermannd dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 24/01/2007, 16h17
  2. [Tableaux] Création dynamique de tableau type array()
    Par Pahcixam dans le forum Langage
    Réponses: 7
    Dernier message: 29/11/2006, 14h34
  3. Réponses: 8
    Dernier message: 04/09/2003, 16h07
  4. Creation dynamique d'un objet
    Par Tom_sawyer13 dans le forum Composants VCL
    Réponses: 4
    Dernier message: 06/08/2003, 18h31
  5. [VBA-E] Dim dynamique sur un tableau
    Par Vince69 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 12/12/2002, 13h32

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