Problem z wpisaniem do stringa elementu innej klasy

0

Hej,
Mam problem, którego nie umiem rozwiązać. Piszę notatnik w C++ korzystając z xWidgets.
Mam oto taki fragment kodu:

szukany_tekst = new string(MojeOkno::okno_tekstu->GetValue())

Mam tam okno notatnika do którego wpisuję tekst i okno szukaj wyrazu, w którym jest miejsce na wpisanie wyrazu. Teraz to obydwa okna dziedziczą z wxFrame. I chciałbym wpisać do szukany_tekst to co jest w głównym oknie notatnika, czyli uzyskać dostęp do elementu składowego klasy MojeOkno. Tylko teraz nie wiem za bardzo jak to zrobić, bo podczas kompilacji tego kodu wyskakuje mi błąd. Proszę o pomoc

0

Podaj treść błędu.

0

Error 1 error C2227: left of '->GetValue' must point to class/struct/union/generic type c:\users\manieq\documents\visual studio 2010\projects\notatnik\notatnik\okno_szukaj.cpp 29

0

Coś mi się to new nie podoba, pokaż trochę więcej kodu.

0

Konstruktor okna głównego:

MojeOkno::MojeOkno(const wxString& title): wxFrame(NULL, wxID_ANY, title)
{
	/*wxPanel *panel = new wxPanel(this);
	przycisk = new wxButton(panel, btID_POKAZNAPIS, wxT("Przycisk"), wxPoint(10, 10), wxSize(50, 20));
	tekst = new wxStaticText(panel, wxID_ANY, wxT("banan"), wxPoint(10,40));
	Connect(btID_POKAZNAPIS, wxEVT_COMMAND_BUTTON_CLICKED , wxCommandEventHandler(MojeOkno::PokazNapis));*/
	pasekMenu = new wxMenuBar;

	menuPlik = new wxMenu;
	menuPlik->Append(menuID_OTWORZ, wxT("&Otwórz plik..."));
	menuPlik->Append(menuID_ZAPISZ, wxT("&Zapisz plik..."));
	menuPlik->Append(menuID_SZUKAJ,wxT("&Szukaj"));
	menuPlik->Append(menuID_OMNIE, wxT("&O mnie"));
	menuPlik->Append(wxID_EXIT, wxT("&Zakończ"));

	pasekMenu->Append(menuPlik, wxT("&Plik"));
	SetMenuBar(pasekMenu);

	Connect(wxID_EXIT, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(MojeOkno::Wyjdz));
	Connect(menuID_OMNIE, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(MojeOkno::OMniePokaz));
	Connect(menuID_ZAPISZ, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(MojeOkno::Zapisz));
	Connect(menuID_OTWORZ, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(MojeOkno::Otworz));
	Connect(menuID_SZUKAJ, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(MojeOkno::Szukaj));


	okno_tekstu = new wxTextCtrl(this, wxWindowID(),"", 
		wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE);

	

}

Klasa okno_szukaj.cpp:

okno_szukaj::okno_szukaj(const wxString& title): wxFrame(NULL, wxID_ANY, title, wxPoint(200, 150), wxSize(300, 70)){
		

	panel = new wxPanel(this);
	szukaj = new wxButton(this, button_ID_szukaj, "Szukaj", wxPoint(200, 3), wxSize(50, 25));

	szukany_wyraz = new wxTextCtrl(this, wxWindowID(),"", wxPoint(20, 5), wxSize(150,20));

	Connect(button_ID_szukaj, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(okno_szukaj::szukaj_tekstu));



	}

	void okno_szukaj::szukaj_tekstu(wxCommandEvent& event){
	string *wyraz;
	wyraz = new string(szukany_wyraz->GetValue());
	
	string *szukany_tekst;
	szukany_tekst = new string();

	}
0

Nie dość, że Ci cieknie jak dziewicy to jeszcze pchasz te new jak byś chciał się pochwalić, że wydaje Ci się, że umiesz wskaźniki. Jak byś dopiero co z Javy się przesiadł. Pisz jak człowiek:

string wyraz = szukany_wyraz->GetValue();
0

Dzięki za pomoc, ale jeszcze jedno: chciałem jeszcze wrzucić do drugiego stringa tekst, który został wpisany w oknie notatnika. Tylko moja forma nie działa:

string tekst = MojeOkno::okno_tekstu->GetValue();

0

Co to jest MojeOkno. Obstawiam, że zmienna okno_tekstu nie jest statyczna więc nic nie zdziałasz z nią.

0

MojeOkno jest klasą okna głównego notatnika, a okno_tekstu to obiekt wxTextCtrl z oknem do wpisywania tekstu notatnika

1 użytkowników online, w tym zalogowanych: 0, gości: 1