wxDev.fr, le portail francophone consacré à wxWidgets ! ( The french portal for wxWidgets )  
Esp. membre
Recheche rapide



Recherche avancée
Statistiques
Membres inscrits :2359

Membres en ligne : 0
Invités en ligne : 2

Valid XHTML 1.0 Transitional

Valid CSS2

Menu forum (navigation):
Pages: 1  
 
Accueil » Accueil forums » Utilisation générale wxWidgets
» Ini et base de registre
Conversation : Ini et base de registre
08-12-2007 14:25:33  Ini et base de registre #1
At0mIkS (Membre)
Inscrit le : 20-11-2007
Messages: 255
Snippets: 0
Tutoriels: 0
Hors ligne
Bonjour,
Comment sauvegarder et recuperer des parametres dans des fichiers .ini et dans la base de registre grace à wxWidget ??

Merci d'avance
08-12-2007 16:13:46  Re: Ini et base de registre #2
Xaviou (Administrateur)
Lieu: Annecy (74)
Inscrit le : 27-08-2007
Messages: 1390
Snippets: 25
Tutoriels: 6
Site web
Hors ligne
Salut.

Il faut utiliser les classes wxFileConfig pour les fichiers, ou la même chose mais non documentée : wxRegConfig pour le registre.

Le nouveau portail wxWidgets francophone : www.wxdev.fr
Ben en fait, vous y êtes déjà... et effectivement, depuis le temps, ce n'est plus tellement nouveau....
09-12-2007 17:40:51  Re: Ini et base de registre #3
At0mIkS (Membre)
Inscrit le : 20-11-2007
Messages: 255
Snippets: 0
Tutoriels: 0
Hors ligne
Ok merci mais par exemple grace à wxFileConfig on peut lire et ecrire

Code:

fenetre=1
dans un config.ini ?



Et par la même occasion j'ai un autre probleme mon code ne marche plus :

Code wxWidgets:

    if(_ctrlEnvoi->IsEmpty())
    {
        wxMessageBox("Veuillez ne pas laisser le champ d'envoi vide",
            "Information", wxOK | wxICON_ERROR, this);
    }
    else
    {
        wxDateTime dateNow = wxDateTime::Now();
        wxString time = dateNow.Format("%d/%m/%y, %Hh%M");
 
        wxString textCtrlRecepted = "At0mIkS\t-> " + time + " : " + _ctrlEnvoi->GetValue() + "\n";
 
        _ctrlRecu->AppendText(textCtrlRecepted);
        _ctrlEnvoi->SetValue("");
    }
 
    _ctrlEnvoi->SetFocus();


Il m'ouvre toujours la messageBox même lorsque le textctrl n'est pas vide
et dès qu'il execute

Code wxWidgets:

wxString textCtrlRecepted = "At0mIkS\t-> " + time + " : " + _ctrlEnvoi->GetValue() + "\n";
il me ferme mon programme et ouvre une fenetre avec ecrit "Mon programme.exe a rencontré un problème et doit fermer. Nous vous prions de nous excuser pour le désagrément encouru."

Merci pour votre aide.
Super site , heuresement qu'il existe sinon je serai sur le carreau avec wxWidget :super:

Dernière modification par At0mIkS (09-12-2007 17:41:22)

10-12-2007 20:21:27  Re: Ini et base de registre #4
xxltux (Membre)
Lieu: Montpellier
Inscrit le : 07-10-2007
Messages: 544
Snippets: 0
Tutoriels: 0
Site web
Hors ligne
_ctrlEnvoi->GetValue() => Ton pointeur est bon?

Itérer est humain, récurser est divin
10-12-2007 20:57:45  Re: Ini et base de registre #5
Ivory69 (Membre)
Inscrit le : 09-10-2007
Messages: 69
Snippets: 0
Tutoriels: 0
Hors ligne
Moi je pencherai pour l'opération sur les données " + ". A mon avis, c'est pas le même format. Pour ce genre d'erreur qui en plus se produit sur du code simple, essaye de tester ton code "à l'extérieur" de ton prog. Ou encore mieux tu mets en commentaire cette partie, tu remplace par une opération sûre et tu vois si ça marche ou pas ...

Code:

 
wxString debut = wxT("At0mIkS\-\>");
wxString fin = _ctrlEnvoi->GetValue();
 
debut.Append(time);
debut.Append(fin);
debut.Append(wxT(" \n"));
 
wxString tonresultat = debut;   
 

A vu de nez jte propose ça je sais pas il faut tester.
10-12-2007 21:26:53  Re: Ini et base de registre #6
xxltux (Membre)
Lieu: Montpellier
Inscrit le : 07-10-2007
Messages: 544
Snippets: 0
Tutoriels: 0
Site web
Hors ligne
Heu tu es en unicode?
Dans tous les cas met wxT

Itérer est humain, récurser est divin
10-12-2007 22:39:00  Re: Ini et base de registre #7
Xaviou (Administrateur)
Lieu: Annecy (74)
Inscrit le : 27-08-2007
Messages: 1390
Snippets: 25
Tutoriels: 6
Site web
Hors ligne
Heu, juste une question : "time", c'est pas une fonction standard du C, ça ?
Essayes avec un autre nom de variable : strTime, par exemple.

Le nouveau portail wxWidgets francophone : www.wxdev.fr
Ben en fait, vous y êtes déjà... et effectivement, depuis le temps, ce n'est plus tellement nouveau....
10-12-2007 22:59:50  Re: Ini et base de registre #8
Ivory69 (Membre)
Inscrit le : 09-10-2007
Messages: 69
Snippets: 0
Tutoriels: 0
Hors ligne
Ah oué bien vu Xav !
L'oeil du tigre....
10-12-2007 23:09:02  Re: Ini et base de registre #9
Xaviou (Administrateur)
Lieu: Annecy (74)
Inscrit le : 27-08-2007
Messages: 1390
Snippets: 25
Tutoriels: 6
Site web
Hors ligne
Résolu ?

Le nouveau portail wxWidgets francophone : www.wxdev.fr
Ben en fait, vous y êtes déjà... et effectivement, depuis le temps, ce n'est plus tellement nouveau....
10-12-2007 23:26:35  Re: Ini et base de registre #10
Ivory69 (Membre)
Inscrit le : 09-10-2007
Messages: 69
Snippets: 0
Tutoriels: 0
Hors ligne
J'en sais rien faut qu'AtOmIkS nous dise. Mais je pense que t'as raison et c'est pour ça que son prog plante.
11-12-2007 18:18:47  Re: Ini et base de registre #11
At0mIkS (Membre)
Inscrit le : 20-11-2007
Messages: 255
Snippets: 0
Tutoriels: 0
Hors ligne
Merci, mais rien à faire mon code compile mais dès qu'il est executé, malheur !!!
Mais même en ayant appliqué vos modifications sa ne marche pas
Bon je vous envoie tout mon code (si vous avez des remarque sur ma façon de codé et ou quelque chose que je pourrais faire de façon optimisé je suis preneur)

Chatpanel.h

Code wxWidgets:

#ifndef DEF_PARAMETREPANEL
#define DEF_PARAMETREPANEL
 
class ChatPanel : public wxPanel
{
    public:
    ChatPanel(wxWindow* parent);
    void OnEnvoi(wxCommandEvent& WXUNUSED(event));
 
    private:
    wxTextCtrl      *_ctrlRecu;
    wxTextCtrl      *_ctrlEnvoi;
    wxButton        *_envoyer;
};
 
#endif
 


Chatpanel.cpp

Code wxWidgets:

 
#include "wx/wxprec.h"
#include <wx/datetime.h>
 
#ifdef __BORLANDC__
    #pragma hdrstop
#endif
 
#ifndef WX_PRECOMP
    #include "wx/wx.h"
#endif
 
#include "myapp.h"
#include "myframe.h"
#include "chatpanel.h"
 
int Id_Envoyer          = wxNewId();
int Id_CtrlRecu         = wxNewId();
int Id_CtrlEnvoi        = wxNewId();
 
BEGIN_EVENT_TABLE(ChatPanel, wxPanel)
    EVT_BUTTON(Id_Envoyer, ChatPanel::OnEnvoi)
    EVT_TEXT_ENTER(Id_CtrlEnvoi, ChatPanel::OnEnvoi)
END_EVENT_TABLE()
 
ChatPanel::ChatPanel(wxWindow* parent):wxPanel(parent)
{
    wxFont police = wxFont(9, wxNORMAL, wxNORMAL, wxNORMAL); //Police des textCtrls
 
    //Controlle msg recu
    _ctrlRecu = new wxTextCtrl(this, Id_CtrlRecu, "", wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE|wxTE_READONLY);
    _ctrlRecu->SetFont(police);
 
    //Controlle msg envoyé
    _ctrlEnvoi = new wxTextCtrl(this, Id_CtrlEnvoi, "", wxDefaultPosition, wxDefaultSize, wxTE_PROCESS_ENTER);
    _ctrlEnvoi->SetFont(police);
    _ctrlEnvoi->SetFocus();
 
    //Controlle bouton envoyer
    _envoyer = new wxButton(this, Id_Envoyer, "Envoyer");
 
    wxBoxSizer *sizerBas = new wxBoxSizer(wxHORIZONTAL);
    sizerBas->Add(_ctrlEnvoi, 1, wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL);
    sizerBas->Add(_envoyer, 0, wxALIGN_RIGHT|wxALIGN_CENTER_HORIZONTAL);
 
    wxBoxSizer *sizer = new wxBoxSizer(wxVERTICAL);
    sizer->Add(_ctrlRecu, 1, wxEXPAND);
    sizer->Add(sizerBas, 0, wxEXPAND);
    SetSizer(sizer);
}
 
void ChatPanel::OnEnvoi(wxCommandEvent& WXUNUSED(event))
{
    if(_ctrlEnvoi->IsEmpty())
    {
        wxMessageBox("Veuillez ne pas laisser le champ d'envoi vide",
            "Information", wxOK | wxICON_ERROR, this);
    }
    else
    {
        [b]wxDateTime dateNow = wxDateTime::Now();
        wxString strTime = dateNow.Format("%d/%m/%y, %Hh%M");
 
        //Mon ancien code
        //wxString textCtrlRecepted = "At0mIkS\t-> " + strTime + " : " + _ctrlEnvoi->GetValue() + "\n";
 
        wxString debut  = wxT("At0mIkS\-\>");
        wxString fin    = _ctrlEnvoi->GetValue();
 
        debut.Append(strTime);
        debut.Append(fin);
        debut.Append(wxT("\n"));
 
        wxString tonresultat = debut;
 
        _ctrlRecu->AppendText(textCtrlRecepted);
        _ctrlEnvoi->SetValue("");[/b]
    }
 
    _ctrlEnvoi->SetFocus();
}
 


Et en plus il me dit que _ctrlEnvoi->IsEmpty() et toujours vrai même quand il ne l'est pas donc il m'affiche toujours la messageBox
Le code defficient doit se trouver dans la partie en gras mais je ne la trouve pas et sa m'enerve

Merci d'avance pour votre aide
11-12-2007 21:03:07  Re: Ini et base de registre #12
Xaviou (Administrateur)
Lieu: Annecy (74)
Inscrit le : 27-08-2007
Messages: 1390
Snippets: 25
Tutoriels: 6
Site web
Hors ligne
At0mIkS:
Le code defficient doit se trouver dans la partie en gras mais je ne la trouve pas et sa m'enerve
Raté : les balises BBCode ne marchent pas à l'intérieur d'un bloc de code :lol:
----------
En fait, il marche très bien ton code : je viens de le tester en rajoutant le "DECLARE_EVENT_TABLE();" dans le header du panel, et en modifiant les chaînes de caractères parce que je suis en Unicode, et en dé-commentant la ligne "wxString textCtrlRecepted =......".

Dernière modification par Xaviou (11-12-2007 21:12:56)


Le nouveau portail wxWidgets francophone : www.wxdev.fr
Ben en fait, vous y êtes déjà... et effectivement, depuis le temps, ce n'est plus tellement nouveau....
11-12-2007 21:19:13  Re: Ini et base de registre #13
Ivory69 (Membre)
Inscrit le : 09-10-2007
Messages: 69
Snippets: 0
Tutoriels: 0
Hors ligne
Je veux bien tester ton prog pour tester quelques ptits trucs et regarder un peu le débugger.
Par contre j'aurais besoin de tes deux autres headers perso (myapp.h et myframe.h), bon je pense qu'ils sont pas long ;-) .
Merki, essaye de me donner ça au plus vite, on aura peut être trouvé dans la soirée


Ah fuck j'avais pas lu que t'avais déjà résolu l'affaire Xav, désolé. J'avais pas regardé après les petits tirets... Sartou Xav bien joué. L'exe ne plante pas alors ?

Dernière modification par Ivory69 (11-12-2007 21:23:33)

11-12-2007 21:33:01  Re: Ini et base de registre #14
Xaviou (Administrateur)
Lieu: Annecy (74)
Inscrit le : 27-08-2007
Messages: 1390
Snippets: 25
Tutoriels: 6
Site web
Hors ligne
Ben non, pas chez moi, en tout cas...

Le nouveau portail wxWidgets francophone : www.wxdev.fr
Ben en fait, vous y êtes déjà... et effectivement, depuis le temps, ce n'est plus tellement nouveau....
11-12-2007 22:12:20  Re: Ini et base de registre #15
At0mIkS (Membre)
Inscrit le : 20-11-2007
Messages: 255
Snippets: 0
Tutoriels: 0
Hors ligne
Chez moi nn plus.
Merci beaucoup
Menu forum (navigation):
Pages: 1  
 
Accueil » Accueil forums » Utilisation générale wxWidgets
» Ini et base de registre