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 :

Novice + class = NULL


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Inscrit en
    Décembre 2005
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 2
    Par défaut Novice + class = NULL
    Bonjour tout le monde...
    Je voudrai bien créer une class « My_class » qui contien un ou plusieurs composants Panel et que ces composants s’affiches dans la form principale.
    J’ai fait un petit essai, mais rien a été affiché:
    FICHIER HEADER :
    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
     
    //---------------------------------------------------------------------------
     
    #ifndef cymaH
    #define cymaH
    //---------------------------------------------------------------------------
    #include <Classes.hpp>
    #include <Controls.hpp>
    #include <StdCtrls.hpp>
    #include <Forms.hpp>
    #include <ExtCtrls.hpp>
    //---------------------------------------------------------------------------
    class my_class : public TPanel
    {
     
    private:	// Déclarations de l'utilisateur
     
    public:		// Déclarations de l'utilisateur
            my_class(void);
            TPanel *Panel;
    };
     
    //---------------------------------------------------------------------------
    class TForm1 : public TForm
    {
    __published:	// IDE-managed Components
    private:	// User declarations
    public:		// User declarations
            my_class *une_class;
            __fastcall TForm1(TComponent* Owner);
    };
     
    //---------------------------------------------------------------------------
    extern PACKAGE TForm1 *Form1;
    //---------------------------------------------------------------------------
    my_class::my_class(void): TPanel(Owner)   //constructeur de my_class
    {
    Parent = Form1;
    Top = 100; Height = 100; Width = 100; Left = 100;
    Color = clBlue;
    Visible = true;
    }
    //---------------------------------------------------------------------------
    #endif
    FICHIER 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
    19
    //---------------------------------------------------------------------------
     
    #include <vcl.h>
    #pragma hdrstop
     
    #include "cyma.h"
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    TForm1 *Form1;
    //---------------------------------------------------------------------------
     
    //---------------------------------------------------------------------------
     
    __fastcall TForm1::TForm1(TComponent* Owner)
            : TForm(Owner)
    {
    }
    //---------------------------------------------------------------------------
    Merci d'avance.

  2. #2
    Membre expérimenté
    Avatar de Djob
    Inscrit en
    Août 2002
    Messages
    215
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 215
    Par défaut
    Si j'ai bien compris , tu veux que my_class soit un panel bleu et qu'il contienne un panel appelé Panel à l'intérieur.

    dans le .h
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    class my_class : public TPanel
    {
     
    private:   // Déclarations de l'utilisateur
     
    public:      // Déclarations de l'utilisateur
     
           TPanel *Panel;
     
           __fastcall  my_class(TComponent * AOwner);  //<----- tu dois avoir un constructeur compatible avec celui du TPanel
     
     
    };

    dans le .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
    19
    20
    21
    22
    __fastcall  my_class::my_class(TComponent * AOwner): TPanel(Owner)
    {
            Top = 100; Height = 100; Width = 100; Left = 100;
            Color = clBlue;
            Panel=new TPanel(this);
            Panel->Height=15;
            Panel->Width=15;
            Panel->Top=15;
            Panel->Left=15;
            Panel->Parent =this;
    }
    //---------------------------------------------------------------------------
    __fastcall TForm1::TForm1(TComponent* Owner)
            : TForm(Owner)
    {
          //exemple d'instanciation :
          my_class * acustom_panel = new my_class(this);
          acustom_panel->Parent=this;
          //NB:(vaut mieux mettre my_class * acustom_panel dans le .h) et faire ici:
          // acustom_panel = new my_class(this);
     
    }

  3. #3
    Candidat au Club
    Inscrit en
    Décembre 2005
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 2
    Par défaut Merci
    Merci pour votre aide Mr Djob. ca marche parfaiement.

  4. #4
    Membre Expert
    Avatar de DjmSoftware
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Mars 2002
    Messages
    1 044
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Responsable de compte
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 044
    Billets dans le blog
    1
    Par défaut
    Salut tu a commis une petite erreur dans ton code
    voici une correction envisageable
    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
     
    // le .h
    class TMyclass : public TPanel
    {
      public:      // Déclarations de l'utilisateur
          __fastcall TMyclass(TComponent* Owner);
    };
     
     
    class TForm1 : public TForm
    {
    __published:	// Composants gérés par l'EDI
    private:	// Déclarations de l'utilisateur
          TMyclass* mClass;
    public:		// Déclarations de l'utilisateur
            __fastcall TForm1(TComponent* Owner);
    };
    //---------------------------------------------------------------------------
    extern PACKAGE TForm1 *Form1;
     
     
    //---------------------------------------------------------------------------
    #endif
     
    // l'implémentation
     
    __fastcall TMyclass::TMyclass(TComponent* Owner)
      :TPanel(Owner) // appeé de la classe de base
    {
      Parent=static_cast<TWinControl*>(Owner);// static cast nécessaire Parent nécessite un TWinControl
      Top = 100;
      Height = 100;
      Width = 100;
      Left = 100;
      Color = clBlue;
      Visible = true;
            //TODO: Add your source code here
    }
     
    __fastcall TForm1::TForm1(TComponent* Owner)
            : TForm(Owner)
    {
       mClass = new TMyclass(this); // instanciation de la classe
    }
    //---------------------------------------------------------------------------

    Cordialement
    vous trouverez mes tutoriels à l'adresse suivante: http://djmsoftware.developpez.com/
    je vous en souhaite une excellente lecture ...

    A lire : Les règles du forum

  5. #5
    Membre expérimenté
    Avatar de Djob
    Inscrit en
    Août 2002
    Messages
    215
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 215
    Par défaut
    oui effectivement
    c'est beaucoup mieux..
    comme l' a souligné DjmSoftWare
    il faut définir le parent dans le constructeur de ta classe...

    bonne continuation.
    + et ne pas oublier

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

Discussions similaires

  1. Cannot create JDBC driver of class '' for connect URL 'null'
    Par edenyorke dans le forum Tomcat et TomEE
    Réponses: 4
    Dernier message: 27/06/2011, 19h29
  2. [Display Tag] impossible de charger la classe null ?
    Par Noxexplorer dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 21/04/2010, 15h37
  3. Cannot create JDBC driver of class '' for connect URL 'null'
    Par Elwe31 dans le forum Tomcat et TomEE
    Réponses: 14
    Dernier message: 11/07/2007, 17h43
  4. Destructeur de classe - remise à NULL
    Par buzzkaido dans le forum C++
    Réponses: 33
    Dernier message: 23/03/2007, 15h59
  5. Réponses: 7
    Dernier message: 10/09/2006, 11h58

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