Hi
hab mal den Einstieg in die GUI-Programmierung in C++ mit wxWidgets, DEV C++ gemacht.
Hab schon sehr gute Erfahrung mit der Gui-Erstellung unter Delphi, im C++ schaffe ich den Einstieg irgendwie nicht… der Compiler motzt immer.
Ich suche nach einem ganz einfachen Tutorial, wo ich soetwas realisieren könnte:
[…]
BEGIN\_EVENT\_TABLE(newProgramDlg,wxDialog)
EVT\_BUTTON(ID\_WXBUTTON1, newProgramDlg::open\_mouth:nButtonSelect)
END\_EVENT\_TABLE()
[…]
void newProgramDlg::CreateGUIControls(void)
{
WxMemo1 = new wxTextCtrl(this, ID\_WXMEMO1, "" , wxPoint(8,24),wxSize(457,78) , wxHSCROLL | wxTE\_MULTILINE);
}
[…]
void newProgramDlg::open\_mouth:nButtonSelect(wxCommandEvent& command)
{
WxMemo1.SetValue("Dies ist mein neuer Wert");
// wxMessageBox("Ein schoener Text");
}
Wenn ich soetwas mache motzt der Compiler mit:
request for member ‚SetValue‘ in ‚this->newProgramDlg::WxMemo1‘, which is of non-aggregate type ‚wxTextCtrl*‘
Der zweite Befehl (als Kommentar dargestellt), funktioniert aber !
Vielen Dank für eure Hilfe !
Ich hoffe in Zukunft selber bei Problemen helfen zu können.
Gruss chi
Wenn ich soetwas mache motzt der Compiler mit:
request for member ‚SetValue‘ in
‚this->newProgramDlg::WxMemo1‘, which is of non-aggregate
type ‚wxTextCtrl*‘
Dein Problem ist, dass du versuchst, auf den Pointer WxMemo1 mit dem Punkt-Operator zuzugreifen. Damit das funktioniert, musst du den Pointer aber erst dereferenzieren bzw. gleich den ->-Operator benutzen. Also
WxMemo1-\>SetValue( "Foo" );
// oder
(\*WxMemo1).SetValue( "Bar" );
he cool… das geht ja wirklich… 
thx.
schönen Abend.
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
wieso geht das jetzt nicht?
Habe jetzt ein bisschen weiter gemacht… und bin wieder steckengeblieben:
void newProgramDlg::open\_mouth:nButtonSelect(wxCommandEvent& command)
{
wxString ganzerInput = WxMemo1-\>GetValue();
int posStart = ganzerInput.Find("test");
WxMemo2-\>SetValue(posStart);
}
„wxString::wxString(int)“ is private
Danke für Hilfe…
Gruss
chi
Hi,
void newProgramDlg:
nButtonSelect(wxCommandEvent&
command)
{
wxString ganzerInput = WxMemo1->GetValue();
int posStart = ganzerInput.Find(„test“);
WxMemo2->SetValue(posStart);
}
„wxString::wxString(int)“ is private
Naja, also int kannst du natürlich nicht in einen wxString umwandeln.
int posStart = ganzerInput.Find(„test“);
wxString str;
str SetValue(str);
Ich hoffe das funktioniert, hab wxWidgets nur daheim und kanns hier nicht ausprobiern 
bye
Christoph
Off-Topic
Hab schon sehr gute Erfahrung mit der Gui-Erstellung unter
Delphi
Nicht, dass ich hier den Klugscheisser spielen will, aber hast Du schon mal überlegt den C++ Builder von Borland zu nehmen ? Der ist mit Delphi nahezu identisch.
… und hat mit C++ nicht mehr wirklich viel zu tun
- aber hier gehts ja nur um GUI und nicht C++, also isser wieder angebracht 
Aber ich finds gut, mit wxWidgets und (wx)Dev-Cpp anzufangen, da hat man hinterher immerhin mehr gelernt also bei dem Borland zeux. (Und es läuft sogar unter Unix/Mac, was man von Kylix nicht wirklich behaupten kann)
bye
Christoph
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]