New et delete, wxWidgets

Signaler
Messages postés
70
Date d'inscription
mardi 25 février 2003
Statut
Membre
Dernière intervention
1 février 2008
-
Messages postés
2023
Date d'inscription
mardi 24 septembre 2002
Statut
Membre
Dernière intervention
28 juillet 2008
-
Bojour à tous !

J'ai commencé à coder une application utilisant wxWidget :

class Application : public wxApp
{
   public:
      virtual bool OnInit();
};

class Fenetre : public wxFrame
{
   public:
      Fenetre(const wxString& titre, const wxPoint& position, const wxSize& taille, long style = wxDEFAULT_FRAME_STYLE);
      bool modif_fenetre_principale ();
      ...
};

Donc je crée mes éléments (boutons, ...) avec des :
   wxButton* button = new wxButton(this, ID_BUTTON, "Ajouter", wxDefaultPosition, wxDefaultSize, 0);
   sizer_gauche->Add(button, 0, wxALL|wxALIGN_CENTER, 5);
dans le constructeur 'Fenetre' (appelé dans OnInit).

Le problème c'est que dans ce OnInit, après avoir créé un "Fenetre *fenetre = new Fenetre", c'est que j'appelle la fonction modif_fenetre_principale.
Et dans celle-ci j'aimerais changer par exemple la police de quelques zones de texte ...

Le problème c'est que quand j'utilise un truc du genre "text_titre->SetFont(wxFont(12, wxBOLD, wxNORMAL, wxNORMAL));", j'ai un problème du compilateur comme quoi text_titre n'est pas défini !

Je comprend pas parce que normalement (enfin je crois) quand on déclare une variable avec new, on peut l'appeler de n'importe où après (jusqu'à ce qu'il y ait un delete), non ???

Pourquoi je ne peux pas accéder à text_titre (dans l'exemple) ???
Comment faire ???

Merci

3 réponses

Messages postés
2023
Date d'inscription
mardi 24 septembre 2002
Statut
Membre
Dernière intervention
28 juillet 2008
5
Oulala, tu crois mal, tu confonds "portée" et "durée de vie" d'une variable. Ca n'a rien avoir.

Donc:
"Je comprend pas parce que normalement (enfin je crois) quand on déclare
une variable avec new, on peut l'appeler de n'importe où après (jusqu'à
ce qu'il y ait un delete), non ???" => Non, tu ne peux pas.
Messages postés
70
Date d'inscription
mardi 25 février 2003
Statut
Membre
Dernière intervention
1 février 2008

Ok, merci

J'vais aller réviser ....
(j'ai pas l'habitude d'utiliser les new er delete)
Messages postés
2023
Date d'inscription
mardi 24 septembre 2002
Statut
Membre
Dernière intervention
28 juillet 2008
5
Dans ton cas, suffit de mettre ton pointeur en tant que membre de ta classe. Tu y auras accès dans toutes les fonctions membres.