begin process at 2010 02 10 08:53:10
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

2 classes --> utiliser les memes objets;


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

2 classes --> utiliser les memes objets;

vendredi 9 septembre 2005 à 23:47:17 | 2 classes --> utiliser les memes objets;

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 bouton.

le code :

////Dialog Style Start
#define THIS_DIALOG_STYLE wxCAPTION | wxSYSTEM_MENU | wxDIALOG_NO_PARENT | wxMINIMIZE_BOX | wxMAXIMIZE_BOX | wxCLOSE_BOX | wxRESIZE_BORDER

#undef CommandDialog_STYLE
#define CommandDialog_STYLE wxCAPTION | wxMINIMIZE_BOX | wxCLOSE_BOX | wxOK
////Dialog Style End
/*
Frame
*/
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;
////GUI Control Declaration Start
public :
    wxFTP *ftp; 
    CommandDialog *m_comDialog;
public :
enum
{
////GUI Enum Control ID Start
ID_STCMD = 1031 ,
ID_COMDIALOG = 1030 ,,
////GUI Enum Control ID End

ID_DUMMY_VALUE_ //Dont Delete this DummyValue
}; //End of Enum;
    void FTPclientFrmClose(wxCloseEvent &event);
    void CreateGUIControls();
public :
    void connect();
    void result();
};
/*
Dialogue envoie 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 *ButtonEnvoyer;
 wxTextCtrl *EditCommand;
 wxStaticText *StaticTextCommand;
private:
    DECLARE_EVENT_TABLE()

public:
enum
{
////GUI Enum Control ID Start
    ID_BUTTONENVOYER = 2003,
    ID_EDITCOMMAND = 2002,
    ID_COMMANDSTATICTEXT = 2001,
////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);
};

Voila, ben en fait, je veux utiliser le pointeur wxFTP *ftp; qui est initialisé dans une fonction membre de FTPclientFrm, dans CommandDialog.

Ou alors, ca me semble plus "développeur" d' appeller une fonction membre de FTPclientFrm à partir de la fonction envoyerClick(event); qui est membre de  CommandDialog;

Donc, avec ce code j' arrive à utiliser des fonctions membres de CommandDialog à partir de FTPclientFrm mais pas à utiliser les fonctions de FTPclientFrm à partir de CommandDialog et l' inverse;

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

dimanche 11 septembre 2005 à 08:20:39 | Re : 2 classes --> utiliser les memes objets;

xterminhate

Membre Club
Le pointeur est initialisé dans la classe dériviée wxFrame et utilisé dans la classe dérivée wxDialog.

Passe ce pointeur à l'instance dériviée de wxDialog par l'intermédiaire de son constructeur.

Je vois pas le probleme....
dimanche 11 septembre 2005 à 14:59:05 | Re : 2 classes --> utiliser les memes objets;

satellite34

bonjour,

désolé mais je ne saisi pas bien le :

"Passe ce pointeur à l'instance dériviée de wxDialog par l'intermédiaire de son constructeur"

ca revient à faire quoi???reconstruire l'  objet dans wxDialog????
car si c'est ca, déja essayé et vu que ce n' est pas le meme objet mais un nouvo, ac ne marche pas, enfin , 0 erreurs de compile mais ma fonction travaille sur une autre instance que celle affichée a l' user..

Merci de préciser, je suis débutant !Et pas de support tel que livre ou autre (encore)


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

dimanche 11 septembre 2005 à 21:47:27 | Re : 2 classes --> utiliser les memes objets;

satellite34

Bonsoir,

Bon, je vais éclaircir mon affaire car c'est clair que c' est pas clair;lol;

donc, en premier lieu j' ai 2 classes(héhé);
1-->FTPclientFrm                 2--->CommandDialog

CommandDialog est l' amie de FTPclientFrm, pour la création d' un dialog a partir d' un évenement de FTPclientFrm;Jusque la c' est ok;

J' ai une fonction membre de CommandDialog qui récupere une chaine de caracteres dans textCtrl :

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


C 'est la que je ne sais plus ou donner de la tetine :
Dans FTPclientFrm, j' ai une fonction membre qui  envoi une commande ftp via un objet wxFTP *ftp en utilisant la fonction command() qui est membre de CommadDialog, ca ca marche bien :
void FTPclientFrm::send()
{
    wxString com = m_comDialog->EditCommand->GetValue();
    ftp->SendCommand(com);
    result();
}

Dans CommandDialog il y a un bouton avec une fonction
void envoyerClick(wxCommandEvent &event);

De cette fonction, il faut que j' appelle send(); qui est membre de FTPclientFrm;
C' est ceci que je n' arrive pas a faire;

Est-ce que j' emploi la bonne méthode??Comment faire;àààà  l' aideeeeee !

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

dimanche 11 septembre 2005 à 21:54:04 | Re : 2 classes --> utiliser les memes objets;

xterminhate

Membre Club
struct CommandDialog
{
CommandDialog( wxFTP* ftp )
private:
wxFTP* ftp; // lien vers l'objet wxFtp initialisé dans FTPclientFrm.
}
dimanche 11 septembre 2005 à 22:15:02 | Re : 2 classes --> utiliser les memes objets;

satellite34

Alors la, vraiment je surnage pourquoi struct alors que j' ai déja une classe nommée CommandDialog???J' ai essayé quand meme de mettre dans ma classe CommandDialog :

CommandDialog( wxFTP* ftp )
private:
wxFTP* ftp; // lien vers l'objet wxFtp initialisé dans FTPclientFrm.


que j' utilise dans la fonction envoyerClick(wxCommandEvent& event);
ftp->SendCommand(command());
donc, ca plante, normal tu m' dira l' objet n' est pas créé mais si je fais un new, boum!, je suis plus sur le meme objet wxFTP;

Et puis, moi, ce que je veux faire, la, c'est utiliser une fonction membre de FTPclientFrm à partir de CommandDialog, pas utiliser un objet;

Quand on connai pas, Du code sans explications ca sert un peu à rien, je me doute que le temps est un précieux énnemi, mais bon, j' aurai préféré un peux d' expliks a la place d' un morceau de code;; erf, merci kan meme xther. mais la, je supernage;mdr

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

dimanche 11 septembre 2005 à 22:26:16 | Re : 2 classes --> utiliser les memes objets;

xterminhate

Membre Club
Réponse acceptée !
struct et class permettent de faire des objets en C++.

Tu dois passer au constructeur de CommandDialogue le pointeur de wxFTP créé à partir de ton objet frame. Cela te permet de partager le même objet wxFTP entre la frame et la boite de dialogue.

Maintenant, l'histoire d'appeller une fonction membre de frame à partir de ta boite de dialogue montre seulement un défaut dans la conception orientée objet de ton applicaiton. Divise ta classe frame pour te faciliter la tache et partage les différentes instances entre la frame et la boite de dialogue....

C'est Xterm, comme la console UNIX.


Cette discussion est classée dans : style, id, enum, event, commanddialog


Répondre à ce message

Sujets en rapport avec ce message

Besoin de méthode pour les classes !!! [ par 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 co DevC++ Frame et la methode Hide [ par imedghar ] Slt tlm,je suis entrain de programmer des GUI avec wxwundows et dev C++.j´ai le probleme suivant:j´ai deux frames (HauptFrame et ActionFrame), pour le Style de mots dans une EditBox [ par PLUiK ] Salut!Je voudrais savoir si on peut changer le style de certains mots ou caractères dans une EditBox en utilisant l'API(pas entièrement, mais seulemen Probleme avec VK_.... ( balayage clavier ) [ par morgandetoi06 ] voila j aimerait simuler l appui des touches "alt" + "="mais je ne trouve pas le code de la touche "="( elle est située à gauche du backspace )voila l icone + texte sur boutton [ par SnOOpss ] Bonjour tout le monde !!J arrive a mettre une icone sur un boutton ( avec le style bs_icon) mais a ce moment je n'ai plus le texte est ce qu il est po novice en C++ [ par leRoutier ] bonjours a tous j'apprend en C++ enfin j'essaye d'apprendre enC++ j'ai actuellement devc++ que pas mal de monde recommande pour commencer mais il manq Richedits et style XP [ par Nebula ] Bonjour, Encore une contrariété avec les RichEdits : ils ne prennent pas l'apparence XP, comme les edits normaux. Dixit MSDN : "To use visual styles GetDlgItemText sans l'identifier [ par oceax ] Bonjour,Voilà j'aimerai récupérer un texte contenu dans une edit box dans une fenetre dont je ne connais que le handle...J'ai essayé de retrouver l'iD Id cpu [ par stancw1775 ] Bonjour ! Je souhaites recuperer l'id d'un processeur mais en C sous windows .. c'est possible ?? HELLP ME FOR MY PTI [ par dj_ricom ] Je suis actuellement en première année BTS IG et je souhaite réaliser un PTI sur la gestion d'une école notament en ce qui concerne les notes des elev


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
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 : 0,328 sec (3)

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