Ĺadny brzuch
Witam serdecznie,
przeszukujac forum natknelam sie, ze jest kilka osob ktore pisza w wxDevC++.
Chce dobrac sie do pliku zapisanego na dysku. W builderze mozna bylo korzystac z funkcji zawartych w bibliotece fstream.h a w wxDevC++ nie chce to zadzialac.
Z projektow wybralam wxWidgets Frame, na formie sa ulozone: OpenFileDialog, button, edit i memo. Efekt jaki che uzyskac to: po pliknieciy button'a wyswietla sie okienko z wyborem pliku. Po wybramiu pliku ma on wyswietlic sie w memo.
#include <fstream> //masa kodu wpisana automatyznie przez wxDev'a //button "otworz plik" void MainWin::WxButton1Click(wxCommandEvent& event) { WxOpenFileDialog1->ShowModal(); WxEdit1 -> SetValue(WxOpenFileDialog1 -> GetPath()); ifstream dane; dane.open(WxOpenFileDialog1 -> GetFilename()); char buff[256]; while (!dane.eof()) { dane.getline(buff, sizeof(buff), ';'); WxMemo1 -> SetValue(buff); } dane.close(); }
Kompilator wyrzuca blad:
In member function `void MainWin::WxButton1Click(wxCommandEvent&)':
`ifstream' undeclared (first use this function)
(Each undeclared identifier is reported only once for each function it appears in.)
expected `;' before "dane"
`dane' undeclared (first use this function)
Tak jak by nie zrozumial dyrektywy #include <fstream> i nie doloczyl tego pliku. Moze jest jakies specjalen miejsce gdzie nalezy umieszczac dyrektywy #include?
PS. Czy ktos moglby mi wyjasnic czym roznia sie projekty: wxWidgets Dialog, wxWidgets Frame i wxWindows?
ehh...
std::ifstream dane;
Skoro jużkorzystasz z wxDevC++ to niekoniecznie musisz używać obiektów iostream, bo są odpowiednie w bibliotekach wxWidgets. A błąd, ltóry miałeś wystąpiłby również, gdybyś nie używał wxDev, więc nie wiąż go raczej z tym.
Co do pytanka na końcu:
wxWindows to projekt w którym nie ma tego panelu z kontrolkami po prawej stronie, to tylko szablon projektu, który nie wymaga wxDev. wxFrame i wxDialog dają możliwość tworzenia GUI przez wybieranie elementów na formatkę. Dialog zasadniczo różni się głównie tym, że może być modalny i wtedy blokuje okno, z którego był wywołany aż do momentu kiedy zwróci wartość. Jeżeli dialog nie jest modalny, to właściwie jest taki jak frame.
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
przeszukujac forum natknelam sie, ze jest kilka osob ktore pisza w wxDevC++.
Chce dobrac sie do pliku zapisanego na dysku. W builderze mozna bylo korzystac z funkcji zawartych w bibliotece fstream.h a w wxDevC++ nie chce to zadzialac.
Z projektow wybralam wxWidgets Frame, na formie sa ulozone: OpenFileDialog, button, edit i memo. Efekt jaki che uzyskac to: po pliknieciy button'a wyswietla sie okienko z wyborem pliku. Po wybramiu pliku ma on wyswietlic sie w memo.
#include <fstream> //masa kodu wpisana automatyznie przez wxDev'a //button "otworz plik" void MainWin::WxButton1Click(wxCommandEvent& event) { WxOpenFileDialog1->ShowModal(); WxEdit1 -> SetValue(WxOpenFileDialog1 -> GetPath()); ifstream dane; dane.open(WxOpenFileDialog1 -> GetFilename()); char buff[256]; while (!dane.eof()) { dane.getline(buff, sizeof(buff), ';'); WxMemo1 -> SetValue(buff); } dane.close(); }
Kompilator wyrzuca blad:
In member function `void MainWin::WxButton1Click(wxCommandEvent&)':
`ifstream' undeclared (first use this function)
(Each undeclared identifier is reported only once for each function it appears in.)
expected `;' before "dane"
`dane' undeclared (first use this function)
Tak jak by nie zrozumial dyrektywy #include <fstream> i nie doloczyl tego pliku. Moze jest jakies specjalen miejsce gdzie nalezy umieszczac dyrektywy #include?
PS. Czy ktos moglby mi wyjasnic czym roznia sie projekty: wxWidgets Dialog, wxWidgets Frame i wxWindows?
ehh...
std::ifstream dane;
Skoro jużkorzystasz z wxDevC++ to niekoniecznie musisz używać obiektów iostream, bo są odpowiednie w bibliotekach wxWidgets. A błąd, ltóry miałeś wystąpiłby również, gdybyś nie używał wxDev, więc nie wiąż go raczej z tym.
Co do pytanka na końcu:
wxWindows to projekt w którym nie ma tego panelu z kontrolkami po prawej stronie, to tylko szablon projektu, który nie wymaga wxDev. wxFrame i wxDialog dają możliwość tworzenia GUI przez wybieranie elementów na formatkę. Dialog zasadniczo różni się głównie tym, że może być modalny i wtedy blokuje okno, z którego był wywołany aż do momentu kiedy zwróci wartość. Jeżeli dialog nie jest modalny, to właściwie jest taki jak frame.