ciao, intanto grazie per l'interessamento: ne ho davvero bisogno (progetto per sessione di esame di settembre)...
allora, questa è tutta la classe del frame:
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()
};
e questo è il relativo costruttore:
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);
}
questo oggetto viene istanziato da un metodo di mainFrame (classe con la finestra principale):
codice:
void mainFrame::OnAddVolo(wxCommandEvent& WXUNUSED(event)){
addVoloFrame* inserimentovolo = new addVoloFrame(
wxT("Progetto Programmazione 2 - Aggiunta volo"),
puntApplicazione,
this);
inserimentovolo->Show();
}
grazie ancora!