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++ Discussion :

Ecrire dans un contrôle de type texte (wxTextCtrl)


Sujet :

C++

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    47
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 47
    Points : 41
    Points
    41
    Par défaut Ecrire dans un contrôle de type texte (wxTextCtrl)
    Bonjour,

    Je souhaite afficher du texte dans un contrôle texte (wxTextCtrl sous wx-devcpp).
    A partir du fichier csv_parserFrm.cpp, j'arrive à y écrire via:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WxMemo1->AppendText(wxT("Bonjour!"));
    Mais, du fichier csv_parserPrg.cpp, comment puis-je faire la même chose?

    Pour info, WxMemo1 est déclaré dans le fichier csv_parserFrm.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
    46
    47
    48
    49
    50
    class csv_parserFrm : public wxFrame
    {
    	private:
    		DECLARE_EVENT_TABLE();
    		
    	public:
    		csv_parserFrm(wxWindow *parent, wxWindowID id = 1, const wxString &title = wxT("csv-parser"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = csv_parserFrm_STYLE);
    		virtual ~csv_parserFrm();
    	             void Mnuopen1007Click(wxCommandEvent& event);
    		void previewClick(wxCommandEvent& event);
    		void checkClick(wxCommandEvent& event);
    		
    	private:
    		//Do not add custom control declarations between
    		//GUI Control Declaration Start and GUI Control Declaration End.
    		//wxDev-C++ will remove them. Add custom code after the block.
    		////GUI Control Declaration Start
    		wxFileDialog *WxOpenFileDialog1;
    		wxMenuBar *WxMenuBar1;
    		wxButton *preview;
    		wxButton *check;
    		wxTextCtrl *WxMemo1;
    		wxSplitterWindow *WxSplitterWindow1;
    		wxStatusBar *WxStatusBar1;
    		////GUI Control Declaration End
    		
    	private:
    		//Note: if you receive any error with these enum IDs, then you need to
    		//change your old form code that are based on the #define control IDs.
    		//#defines may replace a numeric value for the enum names.
    		//Try copy and pasting the below block in your old form header files.
    		enum
    		{
    			////GUI Enum Control ID Start
    			ID_MNU_FILE_1006 = 1006,
    			ID_MNU_OPEN_1007 = 1007,
    			
    			ID_PREVIEW = 1012,
    			ID_CHECK = 1010,
    			ID_WXMEMO1 = 1009,
    			ID_WXSPLITTERWINDOW1 = 1005,
    			ID_WXSTATUSBAR1 = 1004,
    			////GUI Enum Control ID End
    			ID_DUMMY_VALUE_ //don't remove this value unless you have other enum values
    		};
    		
    	private:
    		void OnClose(wxCloseEvent& event);
    		void CreateGUIControls();
    };

    j'ai placé un #include "csv_parserFrm.h" en tête des fichiers csv_parserFrm.cpp et csv_parserPrg.cpp

    .... Mais, pas de résultat convaincant.

    En cherchant de la documentation sur le sujet, il m'a semblé que l'utilisation du préfixe static pouvait être une solution, hélas je n'arrive pas à le mettre en pratique et ne trouve aucun source similaire.

    Quelqu'un aurait il une piste pour moi?

  2. #2
    Membre éprouvé
    Avatar de Spout
    Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    904
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Février 2007
    Messages : 904
    Points : 1 067
    Points
    1 067
    Par défaut
    wxMemo1 est une variable membre privée de la classe csv_parserFrm, ce qui veut dire qu'elle n'est directement accessible que par les fonctions membres de la classe.
    Pour ce faire, soit tu la déclare en tant que membre publique:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    class csv_parserFrm : public wxFrame
    {
    ...
    public:
         wxTextCtrl *WxMemo1;
    ...
    }
    soit tu fais une méthode publique qui la modifie:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    csv_parserFrm : public wxFrame
    {
    ...
    private:
         wxTextCtrl *WxMemo1;
     
    public:
         void AppendTextToMemo1(const wxString& sTextToAppend)
         {
              WxMemo1->AppendText(sTextToAppend);
         };
    ...
    }
    Je te conseille d'utiliser la deuxième solution, de manière à ne pas interférer avec le code généré par ton IDE.

Discussions similaires

  1. Résultat d'une requete dans un controle de type texte
    Par olivierh78 dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 13/02/2007, 18h09
  2. [MySQL] Traitement apostrophe dans zone formulaire de type Text
    Par dfournier dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 08/11/2006, 16h14
  3. Réponses: 8
    Dernier message: 15/11/2005, 18h06
  4. Réponses: 5
    Dernier message: 19/04/2005, 09h46
  5. Réponses: 4
    Dernier message: 15/04/2005, 15h25

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