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 :

[Classe][Creation dynamique composant]


Sujet :

C++Builder

Vue hybride

daheda [Classe][Creation dynamique... 29/04/2007, 07h48
henderson Salut ! Tout bêtement... 29/04/2007, 11h14
daheda Merci pour la reponse que tu... 29/04/2007, 16h38
Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de daheda
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 81
    Par défaut [Classe][Creation dynamique composant]
    bonjour tous le monde!!
    je suis nouveau dans le monde de CPP Builber et de la POO. actuellement je sui un mini-projet de demineur où je tente de crée dynamiquement une matrice de bouton:
    voila la structure et la classe (ce n'est qu'une ebauche):
    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
     
    struct bout
    {
       TButton *b;
       int iem_lig,jiem_col;
       bout *col;
       bout *lig;
    };
    class Matrice
    {
            bout *bouton;
            int nbrcell,cotebout;
            friend TForm1;
            public:
            Matrice();
            ~Matrice();
            void InitMatrice(int);
            void PerformNiveau();
     
    };
    et au moment où je crée l'objet matrice sur ce code là:
    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
     
    void Matrice::InitMatrice(int n)
     {
     this->nbrcell=n;
        cotebout=20;
        bout *saveligne,*ptete,*temp,*p;
        for (int i=0;i<=n;i++)
        {   saveligne=NULL;ptete=NULL; temp=NULL; p=NULL;
             p=new bout();
            for (int j=0;j<=n;j++)
            {
              /*Erreur il ne reconnait pas le mot owner*/ p->b->=new TButton(Owner);
               p->b->Width=cotebout;
               p->b->Height=cotebout;
               p->iem_lig=i;
               p->jiem_col=j;
               p->col=NULL;
               p->lig=NULL;
                  if (ptete==NULL)ptete=p;
                  else temp->col=p;
                  temp=p;
                  if (saveligne==NULL) bouton=ptete;
                  else
                  {
                  saveligne->lig=p;
                  saveligne=saveligne->col;
                  }
            }
            saveligne=ptete;
        }
     
     }
    le compilateur repond que le mot "Owner" n'est pas definie or que si je fais les instructions dans un évènement d'OnClick d'un bouton ça marche...
    S'il vous plait aider moi!
    Merci.

  2. #2
    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 !

    Tout bêtement parce que la OnClick est déclarée en tant que fonction membre (méthode) d'une Form dont la classe possède une propriété Owner du type (TComponent*).
    Si tu veux utiliser un Owner, ce serait bien de dériver de TComponent.

    Une autre solution consisterait à créer une classe dérivée de TButton pour ramener toutes les propriétés dans leur classe, au lieu d'avoir 2 classes pour un bouton !

    On aurait donc :

    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
    class jButton : public TButton
    {
    public :
    //Les propriétés 
     
    //Les méthodes
        __fastcall jButton(TComponent *Owner, ....)
    };
     
    //Le constructeur
     
    __fastcall jButton::jButton(TComponent *Owner, ...)
        : TButton(Owner)
    {
    //Les initialisations
    }


    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
    class jMatrice : public TComponent
    {
    public :
    //Les propriétés
     
    //Les méthodes
        __fastcall jMatrice(TComponent *Owner);
    };
     
    //Le constructeur de jMatrice
    __fastcall jMatrice::jMatrice(TComponent *Owner);
        : TComponent(Owner)
    {
     
    .... = new jButton(this, ...);
    }
    Cela dit... il y a sans doute plus simple...

    A plus !

  3. #3
    Membre confirmé Avatar de daheda
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 81
    Par défaut
    Merci pour la reponse que tu m'a donner!!!
    j'ai déjà pensé a ça mais je pensai que ca pouvais se faire... comme j'ai dit un très très Débutant...
    Merci

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

Discussions similaires

  1. Creation du composant avec Paramètres dynamique.
    Par amallek dans le forum Développement de jobs
    Réponses: 3
    Dernier message: 02/06/2014, 12h50
  2. Creation dynamique de composants
    Par elecpic dans le forum Débuter
    Réponses: 3
    Dernier message: 28/10/2010, 06h51
  3. Réponses: 3
    Dernier message: 28/11/2008, 18h18
  4. Creation dynamique d'un objet
    Par Tom_sawyer13 dans le forum Composants VCL
    Réponses: 4
    Dernier message: 06/08/2003, 18h31
  5. [VB6] Création de composant
    Par Tchetch dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 21/10/2002, 14h52

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