Problem z wpisaniem do stringa elementu innej klasy

Problem z wpisaniem do stringa elementu innej klasy
M1
  • Rejestracja:ponad 13 lat
  • Ostatnio:prawie 13 lat
  • Postów:8
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

M1
  • Rejestracja:około 16 lat
  • Ostatnio:około 7 lat
  • Postów:175
0

Podaj treść błędu.

M1
  • Rejestracja:ponad 13 lat
  • Ostatnio:prawie 13 lat
  • Postów:8
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

hauleth
Moderator
  • Rejestracja:ponad 17 lat
  • Ostatnio:9 dni
0

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


M1
  • Rejestracja:ponad 13 lat
  • Ostatnio:prawie 13 lat
  • Postów:8
0

Konstruktor okna głównego:

Kopiuj
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:

Kopiuj
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();

	}
hauleth
Moderator
  • Rejestracja:ponad 17 lat
  • Ostatnio:9 dni
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:

Kopiuj
string wyraz = szukany_wyraz->GetValue();

M1
  • Rejestracja:ponad 13 lat
  • Ostatnio:prawie 13 lat
  • Postów:8
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();

hauleth
Moderator
  • Rejestracja:ponad 17 lat
  • Ostatnio:9 dni
0

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


M1
  • Rejestracja:ponad 13 lat
  • Ostatnio:prawie 13 lat
  • Postów:8
0

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

hauleth
Który nie jest statyczny. Najpierw naucz się programowania OOP a dopiero potem zajmuj się GUI.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.