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 : 3

Valid XHTML 1.0 Transitional

Valid CSS2

Menu forum (navigation):
Pages: 1  
 
Accueil » Accueil forums » Utilisation générale wxWidgets
» Panel et notifications
Conversation : Panel et notifications
09-12-2007 16:05:44  Panel et notifications #1
At0mIkS (Membre)
Inscrit le : 20-11-2007
Messages: 255
Snippets: 0
Tutoriels: 0
Hors ligne
Bonjour,
Je fais une application avec des panels.
Et je voudrais pouvoir gerer les notification mais je ne sais pas ou mettre mes

Code wxWidgets:

int Id_Envoyer = wxNewId();

Car si je les met dans "myframe.cpp" sa marche pas et si je les met dans "monpanel.cpp" sa marche pas non plus parceque je peux pas faire

Code wxWidgets:

BEGIN_EVENT_TABLE(MyFrame, wxFrame)
    EVT_BUTTON(Id_Envoyer, ChatPanel::OnEnvoi)
END_EVENT_TABLE()


Et je ne trouve pas comment faire, donc c'est pour sa que je viens vous demander votre aide

Merci d'avance
09-12-2007 16:38:44  Re: Panel et notifications #2
Ivory69 (Membre)
Inscrit le : 09-10-2007
Messages: 69
Snippets: 0
Tutoriels: 0
Hors ligne
Au lieu d'essayer de le mettre dans ta table, tu peux essayer de connecter ton évènement à la fonction dans ton code même. Tu récupère ton ID avec event.GetId() si t'as besoin et ensuite :

Code:

 
this->Connect(Id_Envoyer, wxEVT_COMMAND_MENU_SELECTED,
                  wxCommandEventHandler(MyFrame::OnEnvoi));
 

Je ne sais pas si ça résout ton problème, je n'ai pas tout à fait compris pourquoi tu cherchais à récupérer ces notifications à partir d'Id que tu crées au sein de ton prog apparement.
Tu peux en dire plus ?
09-12-2007 16:46:47  Re: Panel et notifications #3
At0mIkS (Membre)
Inscrit le : 20-11-2007
Messages: 255
Snippets: 0
Tutoriels: 0
Hors ligne
Bin c'est pour pouvoir lier par exemple le clique sur un bouton avec une methode
10-12-2007 22:42:38  Re: Panel et notifications #4
Xaviou (Administrateur)
Lieu: Annecy (74)
Inscrit le : 27-08-2007
Messages: 1390
Snippets: 25
Tutoriels: 6
Site web
Hors ligne
At0mIkS:

Code wxWidgets:

BEGIN_EVENT_TABLE(MyFrame, wxFrame)
    EVT_BUTTON(Id_Envoyer, ChatPanel::OnEnvoi)
END_EVENT_TABLE()
Normal que ça ne marche pas : tu essayes de connecter une méthode du panel depuis la table d'événements de la frame.

Mets ta fonction "OnEnvoi" dans la frame, ou alors, crées la table d'événements du panel.
Mais surtout, ne mélanges pas les deux !

@+
Xav'

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 17:16:36  Re: Panel et notifications #5
At0mIkS (Membre)
Inscrit le : 20-11-2007
Messages: 255
Snippets: 0
Tutoriels: 0
Hors ligne
Comment je fais pour declarer la table du panel parce que j'ai essayé

Code wxWidgets:

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()


Et il me met plein d'erreur :

Code:

:: === Talker :: Client, Release ===
M:\Programmation\Projets\[wxWidget] Talker\Client\chatpanel.cpp:20: error: ISO C++ does not permit `wxPanel::sm_eventTable' to be defined as `ChatPanel::sm_eventTable'
C:\wx28\include\wx\generic\panelg.h:91: error: `const wxEventTableEntry wxPanel::sm_eventTableEntries[]' is private
M:\Programmation\Projets\[wxWidget] Talker\Client\chatpanel.cpp:20: error: within this context
M:\Programmation\Projets\[wxWidget] Talker\Client\chatpanel.cpp:20: error: no `const wxEventTable* ChatPanel::GetEventTable() const' member function declared in class `ChatPanel'
M:\Programmation\Projets\[wxWidget] Talker\Client\chatpanel.cpp:20: error: ISO C++ does not permit `wxPanel::sm_eventHashTable' to be defined as `ChatPanel::sm_eventHashTable'
M:\Programmation\Projets\[wxWidget] Talker\Client\chatpanel.cpp:20: error: no `wxEventHashTable& ChatPanel::GetEventHashTable() const' member function declared in class `ChatPanel'
M:\Programmation\Projets\[wxWidget] Talker\Client\chatpanel.cpp:20: error: ISO C++ does not permit `wxPanel::sm_eventTableEntries' to be defined as `ChatPanel::sm_eventTableEntries'
M:\Programmation\Projets\[wxWidget] Talker\Client\chatpanel.cpp:21: error: `OnEnvoi' is not a member of `ChatPanel'
M:\Programmation\Projets\[wxWidget] Talker\Client\chatpanel.cpp:22: error: `OnEnvoi' is not a member of `ChatPanel'
M:\Programmation\Projets\[wxWidget] Talker\Client\chatpanel.cpp:52: error: no `void ChatPanel::OnEnvoi(wxCommandEvent&)' member function declared in class `ChatPanel'
M:\Programmation\Projets\[wxWidget] Talker\Client\chatpanel.cpp:52: error: `void ChatPanel::OnEnvoi(wxCommandEvent&)' and `void ChatPanel::OnEnvoi(wxCommandEvent&)' cannot be overloaded
M:\Programmation\Projets\[wxWidget] Talker\Client\chatpanel.cpp:65: warning: unknown escape sequence '\-'
M:\Programmation\Projets\[wxWidget] Talker\Client\chatpanel.cpp:65: warning: unknown escape sequence '\>'
:: === Build finished: 11 errors, 2 warnings ===
 
11-12-2007 19:17:59  Re: Panel et notifications #6
Ivory69 (Membre)
Inscrit le : 09-10-2007
Messages: 69
Snippets: 0
Tutoriels: 0
Hors ligne
T'as déclaré la table d'évènements du panel dans ta déclaration de classe dans le header ?
11-12-2007 20:59:34  Re: Panel et notifications #7
Xaviou (Administrateur)
Lieu: Annecy (74)
Inscrit le : 27-08-2007
Messages: 1390
Snippets: 25
Tutoriels: 6
Site web
Hors ligne
Ivory69:
T'as déclaré la table d'évènements du panel dans ta déclaration de classe dans le header ?
Je pense que le problème vient de là !

Je viens de faire un essai sans mettre le "DECLARE_EVENT_TABLE();" dans le header du panel, et j'ai le même type d'erreurs.
Ce qui est bizarre, en revanche, c'est le message "error: `OnEnvoi' is not a member of `ChatPanel'".
J'obtiens exactement la même chose, alors que la fonction fait bien partie du panel.

Le fait de rajouter le "DECLARE_EVENT_TABLE();" dans le header supprime tous les messages d'erreurs.

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:23:27  Re: Panel et notifications #8
At0mIkS (Membre)
Inscrit le : 20-11-2007
Messages: 255
Snippets: 0
Tutoriels: 0
Hors ligne
MERCI beaucoup !!!
Tout marche
Meme les autres problèmes sont réglés.

Sinon l'autre question que j'ai posé plus est sans réponse quelqu'un pourrais m'aider svp? :D
Comment grace à wxFileConfig peut-on lire et ecrire

Code:

fenetre=1

dans un config.ini ?

Merci d'avance
11-12-2007 21:31:53  Re: Panel et notifications #9
Xaviou (Administrateur)
Lieu: Annecy (74)
Inscrit le : 27-08-2007
Messages: 1390
Snippets: 25
Tutoriels: 6
Site web
Hors ligne
Il faut déjà savoir comment tu veux stocker tes paramètres :
Si tu utilises directement wxConfig,c'est le système qui décidera :
- Sous Windows = base de registres
- Sous Linux / Mac, fichier de configuration

Tu peux par contre le forcer à utiliser telle ou telle méthode en utilisant les classes "wxRegConfig" ou "wxFileconfig"

Après, pour écrire une valeur :

wxConfig::Write(_T("fenetre"),_T("1"));

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:35:29  Re: Panel et notifications #10
Ivory69 (Membre)
Inscrit le : 09-10-2007
Messages: 69
Snippets: 0
Tutoriels: 0
Hors ligne
Il me semble que les fichiers .ini ou autres extensions exotiques s'ouvrent avec NotePad ou WordPad bref n'importe quel traitement de texte. Je pense pas que ce soit spécialement wxFileConfig qu'il te faut utiliser mais plûtot un ensemble d'objet plus simples.
Il faut que tu crées un fichier texte et que tu modifies l'extension.
Je peux te donner un morceau de code pour écrire dedans (et ajouter des truc à la suit ndlr.)

Code:

 
wxFile *testfile = new wxFile(wxT("c://ouaichouaich/ouaich.ini"), wxFile::write_append);
 
testfile->Create(wxT("c://ouaichouaich/ouaich.ini"), true, wxS_DEFAULT);
 
wxString hem = wxT("Ton code de config"); // contient  ton code de config
 
hem.Append(wxT("code supplémentaire"));
 
testfile->Write(hem, wxConvUTF8);
 
testfile->Close();  //indispensable
 

Ceci dit je n'ai jamais travaillé avec des fichiers .ini et peut être je dis des bétises mais tu devrais regarder ça. Parce ce genre de code te permet de créer n'importe quel fichier style .dat .avs ou autre fichier script (ie du "code")
11-12-2007 21:42:23  Re: Panel et notifications #11
Xaviou (Administrateur)
Lieu: Annecy (74)
Inscrit le : 27-08-2007
Messages: 1390
Snippets: 25
Tutoriels: 6
Site web
Hors ligne
L'avantage des classes wxConfig, c'est surtout pour la lecture des paramètres.
Avec un simple wxFile, il faut parcourir tout le fichier pour obtenir une valeur.
avec wxConfig, t'as pas à t'en soucier : un simple "wxConfig::Read(...)" suffit.

Et si tu utilises les "rubriques" comme dans l'exemple ci-dessous (ne me demande pas à quoiça sert, c'est juste un fichier ini qui est sur mon ordi) :

Code:

 
[Settings]
NumFields=3
NextButtonText=
CancelEnabled=
[Field 2]
Text=
Bottom=38
[Field 3]
Top=45
Bottom=185
Text=
 

Imagines devoir gérer ça toi même :/

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:09:13  Re: Panel et notifications #12
At0mIkS (Membre)
Inscrit le : 20-11-2007
Messages: 255
Snippets: 0
Tutoriels: 0
Hors ligne
Ok merci
11-12-2007 22:11:59  Re: Panel et notifications #13
Ivory69 (Membre)
Inscrit le : 09-10-2007
Messages: 69
Snippets: 0
Tutoriels: 0
Hors ligne
Ah oui en effet. Je vois l'utilité de wxConfig ^^  . En fait je crois que j'ai déjà croisé un fichier .ini avec le logiciel Rainmeter. C'est sûr que c'est plus facile de modifier tout ça si on a un ensemble de classes faites pour...
Bref en tout cas je pourrais pas contribuer davantage, je n'ai pas eu l'occaz de bosser avec ce genre de fichier.
Menu forum (navigation):
Pages: 1  
 
Accueil » Accueil forums » Utilisation générale wxWidgets
» Panel et notifications