begin process at 2012 05 28 17:03:34
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Besoin de méthode pour les classes !!!


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Besoin de méthode pour les classes !!!

dimanche 11 septembre 2005 à 02:59:00 | Besoin de méthode pour les classes !!!

satellite34

Boinsoir,

Comme expliqué sur un autre post (pas trés clair il est vrai), j' ai un soucis avec l' utilisation de 2 classes.

Mon programme se constitue com' ca :

1 classe wxFrame qui est la classe principale de mon programme, avec des objets;
+1 classe wxDialog qui est une classe pour un dialog qui s' affiche sur clik dans le menu;

Mon soucis, c' est que quand j' ai construit mon wxDialog a partir de ma frame, il faut que je fasse marcher le bouton "envoyer" que contient ce dialog; vous suivez toujours???

Ce bouton doit appeller une fonction construite dans ma classe frame, mais je n' arrive pas a utiliser les fonctions de wxFrame à parir de wxDialog car c' est  wxDialog qui est l' amie de wxFrame, donc je  peut utiliser les fonctions membres de wxDialog à partir de wxFrame (construction) mais pas l' inverse;
moi je veux pouvoir utiliser une fonction de wxFrame dans wxDialog ET l' inverse.........
Hum, je pense que je n'emploi pas la bonne méthode car apparrament ceci n' est pas possible(erf, j' en sais rien en fait)

voila mes classes :

class FTPclientFrm : public wxFrame
{
private:
       
    DECLARE_EVENT_TABLE()
   
public:
    FTPclientFrm( wxWindow *parent, wxWindowID id = 1, const wxString &title = _T("FTPclient"),
        const wxPoint& pos = wxDefaultPosition,
        const wxSize& size = wxDefaultSize,
        long style = THIS_DIALOG_STYLE);
~FTPclientFrm();
friend class CommandDialog;      //déclare comme amie la classe wxDialog !
////GUI Control Declaration Start
    wxFTP *ftp;
public :
enum
{
////GUI Enum Control ID Start
ID_COMDIALOG = 1030  ,
////GUI Enum Control ID End

ID_DUMMY_VALUE_ //Dont Delete this DummyValue
}; //End of Enum;
    void FTPclientFrmClose(wxCloseEvent &event);
    void CreateGUIControls();

    void connect();
    void result();
    void EnvoyerCommande();
};
/*
classe de Dialogue envoi de commandes
*/
class CommandDialog : public wxDialog
{
public:
    CommandDialog( wxWindow *parent, wxWindowID id = 1, const wxString &title = wxT("CommandDialog"),
        const wxPoint& pos = wxDefaultPosition,
        const wxSize& size = wxDefaultSize,
        long style = CommandDialog_STYLE);
~CommandDialog();
 wxButton *envoyer;
 wxTextCtrl *EditCommand;
 wxStaticText *StaticTextCommand;
private:
    DECLARE_EVENT_TABLE()

public:
enum
{
////GUI Enum Control ID Start
    ID_BUTTONENVOYER = 2003,
    ID_EDITCOMMAND = 2002,
////GUI Enum Control ID End
    ID_DUMMY_VALUE_ //Dont Delete this DummyValue
}; //End of Enum

    void CommandDialogClose(wxCloseEvent& event);
    void CreateGUIControls(void);
    void envoyerClick(wxCommandEvent &event);
    wxString command();
};

donc, avec ca je construit mon CommandDialog dans FTPclientFrm :

    m_comDialog = new CommandDialog(this, ID_COMDIALOG,
                                          "Envoi de commande",
                                          wxDefaultPosition, wxDefaultSize,
                                          wxDEFAULT_DIALOG_STYLE);
   
    m_comDialog->SetSize(195,118);
    m_comDialog->Center();
    m_comDialog->Show(true);

jusque la pas de soucis........
Je suis dans le dialog, dans ce dialog il y a un bouton et 1 champs de texte, je voudrai que lors du clik sur le bouton, on envoi la fonction membre de FTPclientFrm  
void EnvoyerCommande();  par exemple ,et puis result(); aussi tant qu' on y est.

code :
void FTPclientFrm::EnvoyerCommande()
{
       if(ftp->IsConnected() == true)
       {
       wxString com = m_comDialog->command();
       ftp->SendCommand(com);
       result();
       }
       return;
}
wxString com = m_comDialog->command();
est une fonction membre de CommandDialog implémentée com' suit :

wxString CommandDialog::command()
{
    wxString cmd = EditCommand->GetValue();
    return cmd;
}

Bon, alors ces classes on été réduites pour le post (y a pas tous les objets et fonctions)mais y a l'essentiel que je veux faire interagir;

Est-ce que je m'y prends bien pour utiliser les classes???

Comment récupérer des fonctions de 2 classes dans les deux sens?
PS = Je me rends dingue depuis 3 jours pour envoyer une fonction de FTPclientFrm dans CommandDialog  tout en envoyant des fonctions de CommandDialog dans FTPclientFrm;
aïaÏaï 

event.Merci();
@+;
ROOT_DIEU Alias satellite34

dimanche 11 septembre 2005 à 10:56:21 | Re : Besoin de méthode pour les classes !!!

poppyto

Membre Club Administrateur CodeS-SourceS
Réponse acceptée !
Et pourquoi pas un pointeur CommandDialog dans FTPclientFrm  et inversément ?

Exemple:

class CommandDialog
{
   public:
   FTPclientFrm  * m_ftp;
}

class FTPclientFrm 
{
   public:
   CommandDialog * m_cmdDialog;
}

après avoir initialisé les deux instances, tu n'as plus qu'à les affecter aux deux membres des classes.
Après tu auras un accès aux fonctions/membres public.

[ Lien ] LE site pour les bassistes
dimanche 11 septembre 2005 à 14:54:58 | Re : Besoin de méthode pour les classes !!!

satellite34

bonjour,

je viens d'essayer ca maiss il faut absolument que je construise un FPclientFrm à partier de CommandDialog, ce qui revient a lancer une 2e fois mon programme, moi je veux utiliser par exemple l' objet ftp qui est construit dans FTPclientFrm, a partir de CommandDialog, mais le meme ,pas un new!

car quand je fais, dans CommandDialog
FTPclientFrm *myFrame = new  FTPclientFrm(NULL);
myFrame->send(event);

ca envoi bien la fonction send mais d' une autre instance de FTPclientFrm vu kia new;

La,  franchement, je nage.
http://www.cppfrance.com/forum.v2.aspx?ID=557054, je comprends pas vraiment ce qu' il veut dir par la.

event.Merci();
@+;
ROOT_DIEU Alias satellite34



Cette discussion est classée dans : id, void, commanddialog, wxdialog, ftpclientfrm


Répondre à ce message

Sujets en rapport avec ce message

wxDialog + Bouton ---> bouton marche pas.... [ par satellite34 ] Bonjour,j' ai un probléme dont la réponse est, je m' en doute, déconcertente de simplicité.voila, je créé un wxDialog, j' y met un textCtrl et un bout 2 classes --> utiliser les memes objets; [ par satellite34 ] Bonjour,Je dev une appli qui contient 2 classes;une classe de ma frame principale et une petite classe amie qui est un dialog, qui contient un event b Aide, conseil pour faire changer de texture a un quadrilatere(OGL) :) [ par gimli123 ] Salut, je sais que le titre craint un peu mais voila ... En faite j'ai créé pour faire un tit jeu une classe sprite : </ wxFTP ---> lister le repertoire distant dans un TextCtrl [ par satellite34 ] Bonjour,J' essaye de développer une application client FTP sous wxWIDGETS en utilisant wxFTP;Mon probléme c'est de lister le repertoire distant dans u MESSAGE MAP pour une combobox dans une toolbar [ par equimose ] La grosse équimoze!!!!!!!Bonjour a tousLorsque je fais une modif sur la ComboBox de la ToolBar, il ne ce passe rien!!!voyez pourquoi : http://cppfranc Bouton de toolbar bitmap 24bit [ par Mastersam ] Bonjour j'ai un problème concernant la création de mes boutons de toolbar avec CreateToolbarEx. En effet cette fonction ne m'affiche pas les bitmap da Comment faire le lien entre fltk et X11 ? [ par franchouze ] Bonjour, Je suis en train de faire une GUI sur fltk. Dans cette GUI je dois afficher une image. On me demande d utiliser pour cela un programme déjà wxSizer --> modifier la taille et empécher le chevauchement [ par satellite34 ] Bonsoir,Je travaille sur un dev qui contient plusieurs controles (3) dans une fenetre;Il y a 2 sizers, et je voudrait que ces sizers redimmentionnent  Probleme avec une fonction (fseek) [ par adess00 ] Bonjour alors je vous montre le code le compilateur me di ke ya 2 warnings (missing argument pour mes 2 fonctions j ai essayer avec void mais sa march void Static Virtual CALLBACK ? [ par anarchysniper ] Je dois créer une classe Timer avec sorte de gestion évènementielle à la manière des "events" des classes .NET. Mais comme ces "events" doivent être m


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,607 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales