ciao, intanto grazie per l'interessamento: ne ho davvero bisogno (progetto per sessione di esame di settembre)...
allora, questa è tutta la classe del frame:
e questo è il relativo costruttore:codice:class addVoloFrame: public wxFrame{ public: //costruttore addVoloFrame(const wxString&, myApp*, mainFrame*); //oggetti logici char addFreq[7]; myApp* puntApplicazione; mainFrame* finestraPrincipale; //oggetti fisici wxFlexGridSizer* sizer; wxTextCtrl *addCodice, *addCompagnia, *addProvenienza, *addDestinazione; //ora partenza ed arrivo wxTextCtrl* addOraPartOre, *addOraPartMin, *addOraPartSec; wxTextCtrl* addOraArrOre, *addOraArrMin, *addOraArrSec; //data inizio e fine validita wxCalendarCtrl* addDataInizio; wxCalendarCtrl* addDataFine; //frequenza wxCheckBox* addLun, *addMar, *addMer, *addGio, *addVen, *addSab, *addDom; //pulsante che aggiunge wxButton* bottoneAggiungi; //metodi per eventi void OnAggiungi(wxCommandEvent&); ... private: DECLARE_EVENT_TABLE() };
questo oggetto viene istanziato da un metodo di mainFrame (classe con la finestra principale):codice:addVoloFrame::addVoloFrame(const wxString& title, myApp* appPrinc, mainFrame* framePrinc) : wxFrame((wxFrame *)NULL, -1, title, wxDefaultPosition, wxSize(420,550), wxMINIMIZE_BOX), puntApplicazione(appPrinc), finestraPrincipale(framePrinc) { for (int l=0; l<7; l++) addFreq[l]='-'; wxStaticBox* boxOpzioni = new wxStaticBox(this, -1, "Aggiunta nuovo volo:"); wxStaticBoxSizer* sizerOpzioni = new wxStaticBoxSizer(boxOpzioni, wxVERTICAL); sizer = new wxFlexGridSizer(2, 5, 5); wxFlexGridSizer* feqSizer = new wxFlexGridSizer(2, 1, 1); //ATTENZIONE: //appena decommento anche solo una di queste righe, va in segmentation fault /*addCodice=new wxTextCtrl(this, -1); addCompagnia=new wxTextCtrl(this, -1); addProvenienza=new wxTextCtrl(this, -1); addDestinazione=new wxTextCtrl(this, -1);*/ addDataInizio = new wxCalendarCtrl(this, -1, wxDefaultDateTime, wxDefaultPosition, wxDefaultSize, wxCAL_MONDAY_FIRST); addDataFine = new wxCalendarCtrl(this, -1, wxDefaultDateTime, wxDefaultPosition, wxDefaultSize, wxCAL_MONDAY_FIRST); addLun = new wxCheckBox(this, ID_checkLun, "Lunedì"); feqSizer->Add(addLun); addMar = new wxCheckBox(this, ID_checkMar, "Martedì"); feqSizer->Add(addMar); ... //aggiungo gli elementi al sizer sizer->Add(new wxStaticText(this, -1, "Codice nuovo volo:")); ... SetSizer(sizerOpzioni); }
grazie ancora!codice:void mainFrame::OnAddVolo(wxCommandEvent& WXUNUSED(event)){ addVoloFrame* inserimentovolo = new addVoloFrame( wxT("Progetto Programmazione 2 - Aggiunta volo"), puntApplicazione, this); inserimentovolo->Show(); }

Rispondi quotando