wxDev.fr, le portail francophone consacré à wxWidgets ! ( The french portal for wxWidgets )  
Esp. membre
Recheche rapide



Recherche avancée
Statistiques
Membres inscrits :2359

Membres en ligne : 0
Invités en ligne : 5

Valid XHTML 1.0 Transitional

Valid CSS2

Menu forum (navigation):
Pages: 1  
 
Accueil » Accueil forums » Développement C/C++
» ISO C++ forbids declaration of 'OptionFrame' with no type
Conversation (Résolue) : ISO C++ forbids declaration of 'OptionFrame' with no type
19-04-2011 11:33:24  ISO C++ forbids declaration of 'OptionFrame' with no type #1
shallows (Membre)
Inscrit le : 05-04-2011
Messages: 47
Snippets: 0
Tutoriels: 0
Hors ligne
Bonjour,
j'ai une erreur de compilation sur ma fenetre et je ne m'en sors pas, "ISO C++ forbids declaration of 'OptionFrame' with no type". L'erreur est dans le .h de OptinFrame.
est ce que quelqu'un aurait une idée ?
voici mon code:
OptionFrame.cpp

Code Cpp:

#include "wx_pch.h"
#include "OptionFrame.h"
#include <wx/msgdlg.h>
 
#include <wx/settings.h>
#include <wx/font.h>
#include <wx/intl.h>
#include <wx/string.h>
 
const long OptionFrameFrame::ID_STATICTEXT1 = wxNewId();
const long OptionFrameFrame::ID_TEXTCTRL1 = wxNewId();
/* je vous epargne les déclarations*/
const long OptionFrameFrame::idMenuQuit = wxNewId();
const long OptionFrameFrame::idMenuAbout = wxNewId();
const long OptionFrameFrame::ID_STATUSBAR1 = wxNewId();
 
BEGIN_EVENT_TABLE(OptionFrame, wxFrame)
 
 
END_EVENT_TABLE()
 
OptionFrame::OptionFrame(const wxString& title, const wxPoint& pos, const wxSize& size): wxFrame((wxFrame *)NULL, -1, title, pos, size)
{
    wxMenuItem* MenuItem2;
    wxMenuItem* MenuItem1;
    wxMenu* Menu1;
    wxButton* Button2;
    wxGridSizer* GridSizer1;
    wxGridSizer* GridSizer3;
    wxMenuBar* MenuBar1;
    wxMenu* Menu2;
    wxGridSizer* GridSizer2;
    wxStdDialogButtonSizer* StdDialogButtonSizer1;
 
    Create(parent, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxDEFAULT_FRAME_STYLE, _T("wxID_ANY"));
    SetForegroundColour(wxColour(0,0,0));
    SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_ACTIVEBORDER));
    wxFont thisFont(10,wxSWISS,wxFONTSTYLE_NORMAL,wxNORMAL,false,wxEmptyString,wxFONTENCODING_DEFAULT);
    SetFont(thisFont);
    GridSizer1 = new wxGridSizer(6, 2, 0, 0);
 
  /* je vous épargne les déclarations à rallonge  */
 
    Connect(ID_BUTTON1,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&OptionFrameFrame::OnButton1Click1);
    Connect(ID_RADIOBUTTON1,wxEVT_COMMAND_RADIOBUTTON_SELECTED,(wxObjectEventFunction)&OptionFrameFrame::OnradioPeriodiqueSelect);
    Connect(ID_CHOICE1,wxEVT_COMMAND_CHOICE_SELECTED,(wxObjectEventFunction)&OptionFrameFrame::OnChoice1Select);
    Connect(ID_RADIOBUTTON2,wxEVT_COMMAND_RADIOBUTTON_SELECTED,(wxObjectEventFunction)&OptionFrameFrame::OnRadioHeureFSelect);
    Connect(ID_RADIOBUTTON3,wxEVT_COMMAND_RADIOBUTTON_SELECTED,(wxObjectEventFunction)&OptionFrameFrame::OnRadioMinuteFSelect);
    Connect(ID_RADIOBUTTON4,wxEVT_COMMAND_RADIOBUTTON_SELECTED,(wxObjectEventFunction)&OptionFrameFrame::OnRadioAucuneSelect);
    Connect(idMenuQuit,wxEVT_COMMAND_MENU_SELECTED,(wxObjectEventFunction)&OptionFrameFrame::OnQuit);
    Connect(idMenuAbout,wxEVT_COMMAND_MENU_SELECTED,(wxObjectEventFunction)&OptionFrameFrame::OnAbout);
 
}
 


et le OptionFrame.h

Code Cpp:

#ifndef OPTIONFRAME_H
#define OPTIONFRAME_H
 
 
#include <wx/sizer.h>
#include <wx/stattext.h>
#include <wx/menu.h>
#include <wx/textctrl.h>
#include <wx/radiobut.h>
#include <wx/choice.h>
#include <wx/button.h>
#include <wx/frame.h>
#include <wx/statusbr.h>
 
 
class OptionFrameFrame: public wxFrame
{
    public:
        OptionFrame(const wxString& title, const wxPoint& pos, const wxSize& size);
        virtual ~OptionFrameFrame();
 
    private:
 
/*idem*/
        DECLARE_EVENT_TABLE()
};
 
#endif
 

cette fenetre est une fenetre fille qui est appelée à un click sur la fenetre mere.
transfertMain.cpp

Code Cpp:

void TransfertFrame::OnButton2Click(wxCommandEvent& event)
{
 
OptionFrame *frame2;
*frame2 = new OptionFrame(_T("Downloads"), wxPoint(0,0), wxSize(450,999) );//execution de la fenetre d'option
frame2->Show(TRUE);
 
}


Merci d'avance.
Shallows
19-04-2011 12:34:03  Re: ISO C++ forbids declaration of 'OptionFrame' with no type #2
Xaviou (Administrateur)
Lieu: Annecy (74)
Inscrit le : 27-08-2007
Messages: 1387
Snippets: 25
Tutoriels: 6
Site web
Hors ligne
Salut.

Regardes bien le nom de ta classe : il y a comme une petite erreur :lol:

@+
Xav'

Le nouveau portail wxWidgets francophone : www.wxdev.fr
Ben en fait, vous y êtes déjà... et effectivement, depuis le temps, ce n'est plus tellement nouveau....
19-04-2011 13:44:32  Re: ISO C++ forbids declaration of 'OptionFrame' with no type #3
shallows (Membre)
Inscrit le : 05-04-2011
Messages: 47
Snippets: 0
Tutoriels: 0
Hors ligne
:D oups ... merci ^^

j'ai un nouveau soucis du coup , avec ma fenetre secondaire.
j'ai corrigé le nom de ma classe mais maintenant j'ai un soucis avec la variable "parent" qui n'est pas déclarée. elle apparait dans OptionFrame.cpp:

Code wxWidgets:

Create(parent, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxDEFAULT_FRAME_STYLE, _T("wxID_ANY"));

j'ai essayé de l'ajouté partout(dans le constructeur et les classes qui l'appelle) mais il disent qu'elle n'est pas initialisée. Et quand je la supprimme, le create est pas content...

Merci de m'aider (encore une fois^^")
Shallows
19-04-2011 16:59:45  Re: ISO C++ forbids declaration of 'OptionFrame' with no type #4
Xaviou (Administrateur)
Lieu: Annecy (74)
Inscrit le : 27-08-2007
Messages: 1387
Snippets: 25
Tutoriels: 6
Site web
Hors ligne
Salut.

Il faut que tu ajoutes le paramètre wxWindow* parent au constructeur de ta frame afin de pouvoir le passer au constructeur de la classe de base (wxFrame).

De plus, il y a une erreur dans ton code : tu appelles la méthode Create alors que tu as déjà appelé le constructeur de wxFrame : c'est soit l'un, soit l'autre, mais pas les deux, car la méthode Create est déjà appelée par le constructeur de wxFrame.

@+
Xav'

Le nouveau portail wxWidgets francophone : www.wxdev.fr
Ben en fait, vous y êtes déjà... et effectivement, depuis le temps, ce n'est plus tellement nouveau....
20-04-2011 09:51:39  Re: ISO C++ forbids declaration of 'OptionFrame' with no type #5
shallows (Membre)
Inscrit le : 05-04-2011
Messages: 47
Snippets: 0
Tutoriels: 0
Hors ligne
Bonjour,
j'avais modifié mon code en ajoutant wxWindow* parentà mon constructeur mais je ne sais pas l'initialiser avec la frame principale(pour le moment il est à NULL).
Pourrais tu m'expliquer la différence entre une fenetre qui aura été initialisé avec la fenetre principale et deux fenetres initialisé à NULL ?

Merci d'avance.

Shallows
----------
Bonsoir j'ai finalement trouvé l'option qui me permettait de créer un fenetre secondaire, je me sers des objet graphique wxSmith donc j'ai "ajouté un wxDialog" à mon prjet courant.

Merci pour votre aide.

Shallows

Dernière modification par shallows (20-04-2011 17:11:30)

Menu forum (navigation):
Pages: 1  
 
Accueil » Accueil forums » Développement C/C++
» ISO C++ forbids declaration of 'OptionFrame' with no type