[C++] Problème int
Fermé
fredvince
Messages postés
14
Date d'inscription
jeudi 23 février 2006
Statut
Membre
Dernière intervention
14 juillet 2006
-
28 févr. 2006 à 11:30
mamiemando Messages postés 33077 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 18 avril 2024 - 3 mars 2006 à 20:30
mamiemando Messages postés 33077 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 18 avril 2024 - 3 mars 2006 à 20:30
A voir également:
- [C++] Problème int
- Int converter - Télécharger - Bureautique
- Int main(void) ✓ - Forum C++
- Typeerror: 'int' object is not subscriptable - Forum Python
- Can't multiply sequence by non-int of type 'float' - Forum Python
- Convertir string en int vba - Forum VB / VBA
7 réponses
blurk
Messages postés
486
Date d'inscription
vendredi 16 avril 2004
Statut
Membre
Dernière intervention
15 mars 2009
160
28 févr. 2006 à 11:42
28 févr. 2006 à 11:42
peut on voir les prototypes des méthodes :
OnSelectionner_les_zones_a_analyser() ?
GetValue() ?
OnSelectionner_les_zones_a_analyser() ?
GetValue() ?
Oki, alors voilà ce que tu demandes, peut-être en ai-je mis trop mais bon :
class MyFrame : public wxFrame
{
public:
MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size,
long style = wxDEFAULT_FRAME_STYLE);
void OnAnalyser(wxCommandEvent& event);
void OnZone_de_quarantaine(wxCommandEvent& event);
void OnJournal(wxCommandEvent& event);
void OnSelectionner_les_zones_a_analyser(wxCommandEvent& event);
void OnMise_a_jour(wxCommandEvent& event);
void OnAide(wxCommandEvent& event);
void OnQuitter(wxCommandEvent& event);
void OnChiffre(wxCommandEvent& event);
private:
int Chiffre; //mémorise le chiffre sélectionné
wxStaticText *Label;
DECLARE_EVENT_TABLE()
};
enum
{
Minimal_Analyser = 1,
Minimal_Zone_de_quarantaine = 2,
Minimal_Journal = 3,
Minimal_Selectionner_les_zones_a_analyser = 4,
Minimal_Mise_a_jour = 5,
Minimal_Aide = 6,
Minimal_Quitter = 7,
Minimal_Chiffre = 8,
};
class MyDialog : public wxDialog
{
public:
MyDialog(wxWindow* parent, wxWindowID id, const wxString& title, int nb = 0);
int GetValue();
void SetValue(int);
private:
wxRadioButton *RadioBouton1;
wxRadioButton *RadioBouton2;
wxRadioButton *RadioBouton3;
};
.........
.........
void MyFrame::OnSelectionner_les_zones_a_analyser(wxCommandEvent& WXUNUSED(event))
{
MyDialog Selectionner_les_zones_a_analyser(NULL,8,"Titre",Chiffre);
if ( Selectionner_les_zones_a_analyser.ShowModal() == wxID_OK )
{
wxString st = "Aucun";
Chiffre = Selectionner_les_zones_a_analyser.GetValue();
switch(Chiffre)
{
case 1 : st = "Un";
break;
case 2 : st = "Deux";
break;
case 3 : st = "Trois";
break;
}
Label->SetLabel("N° Sélectionné : " + st);
}
}
MyDialog::MyDialog(wxWindow* parent, wxWindowID id, const wxString& titre, int nb)
: wxDialog(parent,id,titre,wxDefaultPosition,wxSize(240, 200))
{
RadioBouton1 = new wxRadioButton(this,-1,"Un");
RadioBouton2 = new wxRadioButton(this,-1,"Deux");
RadioBouton3 = new wxRadioButton(this,-1,"Trois");
wxButton *MonBouton1 = new wxButton(this,wxID_OK,"Ok");
wxButton *MonBouton2 = new wxButton(this,wxID_CANCEL,"Annuler");
wxBoxSizer *sizer1 = new wxBoxSizer( wxVERTICAL );
sizer1->Add(-1,25);
sizer1->Add(RadioBouton1,0,wxALL,5);
sizer1->Add(RadioBouton2,0,wxALL,5);
sizer1->Add(RadioBouton3,0,wxALL,5);
wxBoxSizer *sizer2 = new wxBoxSizer( wxHORIZONTAL );
sizer2->Add(MonBouton1,0,wxBOTTOM | wxLEFT | wxRIGHT ,5);
sizer2->Add(MonBouton2,0,wxBOTTOM | wxLEFT | wxRIGHT ,5);
wxBoxSizer *Psizer = new wxBoxSizer( wxVERTICAL );
Psizer->Add(sizer1,3,wxALIGN_CENTER);
Psizer->Add(sizer2,1,wxALIGN_CENTER);
SetSizer(Psizer);
SetValue(nb);
}
int MyFrame::OnSelectionner_les_zones_a_analyser::GetValue() //ça coince à partir de là
{
int x = 0;
if( RadioBouton1->GetValue() ) x = 1;
if( RadioBouton2->GetValue() ) x = 2;
if( RadioBouton3->GetValue() ) x = 3;
return x;
}
void MyFrame::OnSelectionner_les_zones_a_analyser::SetValue(int x)
{
switch(x)
{
case 1 : RadioBouton1->SetValue(true);
break;
case 2 : RadioBouton2->SetValue(true);
break;
case 3 : RadioBouton3->SetValue(true);
break;
}
}
class MyFrame : public wxFrame
{
public:
MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size,
long style = wxDEFAULT_FRAME_STYLE);
void OnAnalyser(wxCommandEvent& event);
void OnZone_de_quarantaine(wxCommandEvent& event);
void OnJournal(wxCommandEvent& event);
void OnSelectionner_les_zones_a_analyser(wxCommandEvent& event);
void OnMise_a_jour(wxCommandEvent& event);
void OnAide(wxCommandEvent& event);
void OnQuitter(wxCommandEvent& event);
void OnChiffre(wxCommandEvent& event);
private:
int Chiffre; //mémorise le chiffre sélectionné
wxStaticText *Label;
DECLARE_EVENT_TABLE()
};
enum
{
Minimal_Analyser = 1,
Minimal_Zone_de_quarantaine = 2,
Minimal_Journal = 3,
Minimal_Selectionner_les_zones_a_analyser = 4,
Minimal_Mise_a_jour = 5,
Minimal_Aide = 6,
Minimal_Quitter = 7,
Minimal_Chiffre = 8,
};
class MyDialog : public wxDialog
{
public:
MyDialog(wxWindow* parent, wxWindowID id, const wxString& title, int nb = 0);
int GetValue();
void SetValue(int);
private:
wxRadioButton *RadioBouton1;
wxRadioButton *RadioBouton2;
wxRadioButton *RadioBouton3;
};
.........
.........
void MyFrame::OnSelectionner_les_zones_a_analyser(wxCommandEvent& WXUNUSED(event))
{
MyDialog Selectionner_les_zones_a_analyser(NULL,8,"Titre",Chiffre);
if ( Selectionner_les_zones_a_analyser.ShowModal() == wxID_OK )
{
wxString st = "Aucun";
Chiffre = Selectionner_les_zones_a_analyser.GetValue();
switch(Chiffre)
{
case 1 : st = "Un";
break;
case 2 : st = "Deux";
break;
case 3 : st = "Trois";
break;
}
Label->SetLabel("N° Sélectionné : " + st);
}
}
MyDialog::MyDialog(wxWindow* parent, wxWindowID id, const wxString& titre, int nb)
: wxDialog(parent,id,titre,wxDefaultPosition,wxSize(240, 200))
{
RadioBouton1 = new wxRadioButton(this,-1,"Un");
RadioBouton2 = new wxRadioButton(this,-1,"Deux");
RadioBouton3 = new wxRadioButton(this,-1,"Trois");
wxButton *MonBouton1 = new wxButton(this,wxID_OK,"Ok");
wxButton *MonBouton2 = new wxButton(this,wxID_CANCEL,"Annuler");
wxBoxSizer *sizer1 = new wxBoxSizer( wxVERTICAL );
sizer1->Add(-1,25);
sizer1->Add(RadioBouton1,0,wxALL,5);
sizer1->Add(RadioBouton2,0,wxALL,5);
sizer1->Add(RadioBouton3,0,wxALL,5);
wxBoxSizer *sizer2 = new wxBoxSizer( wxHORIZONTAL );
sizer2->Add(MonBouton1,0,wxBOTTOM | wxLEFT | wxRIGHT ,5);
sizer2->Add(MonBouton2,0,wxBOTTOM | wxLEFT | wxRIGHT ,5);
wxBoxSizer *Psizer = new wxBoxSizer( wxVERTICAL );
Psizer->Add(sizer1,3,wxALIGN_CENTER);
Psizer->Add(sizer2,1,wxALIGN_CENTER);
SetSizer(Psizer);
SetValue(nb);
}
int MyFrame::OnSelectionner_les_zones_a_analyser::GetValue() //ça coince à partir de là
{
int x = 0;
if( RadioBouton1->GetValue() ) x = 1;
if( RadioBouton2->GetValue() ) x = 2;
if( RadioBouton3->GetValue() ) x = 3;
return x;
}
void MyFrame::OnSelectionner_les_zones_a_analyser::SetValue(int x)
{
switch(x)
{
case 1 : RadioBouton1->SetValue(true);
break;
case 2 : RadioBouton2->SetValue(true);
break;
case 3 : RadioBouton3->SetValue(true);
break;
}
}
blurk
Messages postés
486
Date d'inscription
vendredi 16 avril 2004
Statut
Membre
Dernière intervention
15 mars 2009
160
1 mars 2006 à 13:05
1 mars 2006 à 13:05
GetValue()étant une méthode disponible dans plusieurs classes
différentes, il yen a une qui doit être déclarée virtuelle, celle que tu vas utiliser dans
OnSelectionner_les_zones_a_analyser::
(voir virtual)
A+
Char Snipeur
Messages postés
9696
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 297
1 mars 2006 à 13:42
1 mars 2006 à 13:42
Salut.
pour moi, tu devrai declarer "OnSelectionner_les_zones_a_analyser" comme class et non comme "void"... (declare normalement une methode ,non?)
Ou alors il y a quelque chose qui m'échappe.
pour moi, tu devrai declarer "OnSelectionner_les_zones_a_analyser" comme class et non comme "void"... (declare normalement une methode ,non?)
Ou alors il y a quelque chose qui m'échappe.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
fredvince
Messages postés
14
Date d'inscription
jeudi 23 février 2006
Statut
Membre
Dernière intervention
14 juillet 2006
3 mars 2006 à 11:32
3 mars 2006 à 11:32
B j'ai essayé mais rien à faire, cela ne fonctionne toujours pas...
Char Snipeur
Messages postés
9696
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 297
3 mars 2006 à 13:11
3 mars 2006 à 13:11
MyFrame::OnSelectionner_les_zones_a_analyser::GetValue()
fait référence à une fonction d'une class ou d'un "namespace"
OnSelectionner_les_zones_a_analyser.
Celle ci ne semble pas déclarer.
donc déclare dans "MyFrame":
class OnSelectionner_les_zones_a_analyser;
et ensuite tu fait :
class MyFrame::OnSelectionner_les_zones_a_analyser{//constructeur
int GetValue();//etc...};
int MyFrame::OnSelectionner_les_zones_a_analyser::GetValue(){//def de la fonction
};
ça devrai fonctionner je pense. A mon avis tu confond méthode/fonction et classe.
Bonne chance.
fait référence à une fonction d'une class ou d'un "namespace"
OnSelectionner_les_zones_a_analyser.
Celle ci ne semble pas déclarer.
donc déclare dans "MyFrame":
class OnSelectionner_les_zones_a_analyser;
et ensuite tu fait :
class MyFrame::OnSelectionner_les_zones_a_analyser{//constructeur
int GetValue();//etc...};
int MyFrame::OnSelectionner_les_zones_a_analyser::GetValue(){//def de la fonction
};
ça devrai fonctionner je pense. A mon avis tu confond méthode/fonction et classe.
Bonne chance.
mamiemando
Messages postés
33077
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
18 avril 2024
7 748
3 mars 2006 à 20:30
3 mars 2006 à 20:30
int MyDialog::GetValue(){ int x = 0; if( RadioBouton1->GetValue() ) x = 1; if( RadioBouton2->GetValue() ) x = 2; if( RadioBouton3->GetValue() ) x = 3; return x; }
Petit rappel sur les namespace et les classes : ils commencent par une accolade ouvrante { et finissent par une accolade fermante suivie d'un point virgule
};.
Il n'est pas utile de repréciser le namespace ou la classe si on se situe entre ces deux séparateurs.
class MyDialog : public wxDialog { public: MyDialog(wxWindow* parent, wxWindowID id, const wxString& title, int nb = 0); int GetValue(); // vu de l'exterieur MyDialog::GetValue() void SetValue(int); private: wxRadioButton *RadioBouton1; // vu de l'exterieur MyDialogRadioButton1 wxRadioButton *RadioBouton2; wxRadioButton *RadioBouton3; };
Autre exemple
namespace tapir{ class plop{ public: int mamie(){return 1;} //A l'interieur de la classe : mamie //... }; //A l'interieur du namespace plop::mamie }; //A l'exterieur tapir::plop::mamie()
Bonne chance