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