Mais c koi cet héritage de m...

cs_nomad56 Messages postés 54 Date d'inscription samedi 16 avril 2005 Statut Membre Dernière intervention 13 avril 2006 - 1 mai 2005 à 02:10
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 - 1 mai 2005 à 16:59
salut, j'utilise wxWidgets et g un piti pb simple à régler surement mais je vois pas trop la subtilité moi personellement donc si kk1 pouvait m'aider : j'esplike :

je veux faire 2 frames une principale et une enfant appelée LoginFrame.h/.cpp
bon alors le truc c ke LoginFrame se connecte a mysql pour vérifier le login/mot de passe et si c ok, on revient sur la frame parent en lui donnant l'identifiant du praticien...(c la table sql ca).
bref juske la tout fonctionne bien, je récup l'identifiant mais j'arrive pas a le faire passer au parent : parce que la fenêtre parent est une classe BonitaFrame dérivée de wxFrame et contenant une méthode setIdPraticien, mais quand je fais :
******************
if(!passeur)
{
wxMessageBox("Votre identification est erronée !","ACCESS DENIED",wxOK | wxICON_HAND );

}

else
{ //ok le praticien est identifié

GetParent()->setIdPraticien(id_praticien);
(GetParent())->Show(true);
Destroy();
}
********************
Il me met que wxWindow ne contient pas de méthode nomée "setIdPraticien"
parce que en fait il considère que le parent est de type wxWindow mais je veux que ce soit de type BonitaFrame moi... g fais les déclarations comme ca :
*****************
LoginFrame::LoginFrame( wxFrame *parent, wxWindowID id, const wxString &title, const wxPoint &position, const wxSize& size, long style )
: wxFrame( parent, id, title, position, size, style)
{ ...
***************
et pour BonitaFrame (fenetre parent):
*****************
BonitaFrame::BonitaFrame( wxWindow *parent, wxWindowID id, const wxString &title, const wxPoint &position, const wxSize& size, long style )
: wxFrame( parent, id, title, position, size, style)
{


LoginFrame *identification = new LoginFrame(this);
//SetTopWindow(identification);
identification->Show(TRUE);
**************

Je sais que c juste un détail mais pour un newbie comme moi ca peut prendre longtemps avant ke je comprenne donc merci d'avance pour l'aide

4 réponses

cs_nomad56 Messages postés 54 Date d'inscription samedi 16 avril 2005 Statut Membre Dernière intervention 13 avril 2006 1
1 mai 2005 à 02:34
ok j'ai réussit en bidouillant fallait faire un cast :

#include "BonitaFrame.h"

et faire
((BonitaFrame*)GetParent())->setIdPraticien(id_praticien);

au lieu de
GetParent()->setIdPraticien(id_praticien);

mais la la classe LoginFrame devient spécifique (liée) à la classe BonitaFrame
alors du coup j'ai une autre question :
comment faire pour que LoginFrame marche pour toute les classes ayant setIdPratiquant comme méthode...

par exemple si je veux plus tard utiliser LoginFrame avec une autre frame parent de type euh.. PasBonitaFrame.h/.cpp ....

lol je sais pas si je me fais bien comprendre ..
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
1 mai 2005 à 10:26
Je mettrais un BonitaFrame* parent dans ta classe LoginFrame et dans le
constructeur tu fais le cast, puis après tu utilises parent au lieu de
GetParent. Mais a mon avis ces deux classes sont forcément liées, et je
pense que si tu changes la classe de la fenêtre parent, il faudra que
tu modifies LoginFrame.h et mettre PasBonitaFrame* parent
0
cs_nomad56 Messages postés 54 Date d'inscription samedi 16 avril 2005 Statut Membre Dernière intervention 13 avril 2006 1
1 mai 2005 à 16:38
ok merci pour ta réponse, donc c obligatoire que les classes soient liées koi....

bon ben sauf si quelqu'un me donne une autre solution, je considère que les classes doivent etre liées... ( n'empêche que le principe de la POO c'est quand même un peu de pouvoir réutiliser des classes dans d'autres projets...)

mici bcp
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
1 mai 2005 à 16:59
Quand je faisais du MFC j'avais le même genre de problème et j'ai pas
trouvé de moyen de le résoudre proprement. A mon avis tu ne devrais pas
trop t'attarder la dessus
0
Rejoignez-nous