cs_nomad56
Messages postés54Date d'inscriptionsamedi 16 avril 2005StatutMembreDernière intervention13 avril 2006
-
1 mai 2005 à 02:10
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 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
cs_nomad56
Messages postés54Date d'inscriptionsamedi 16 avril 2005StatutMembreDernière intervention13 avril 20061 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 ....
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 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
cs_nomad56
Messages postés54Date d'inscriptionsamedi 16 avril 2005StatutMembreDernière intervention13 avril 20061 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...)
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 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