WxNotebook Probleme
-
Hallo Leute,
ich hab ein Problem:
Ich hab mehrere wxNotebookPages und möchte deren Werte in einer XML Datei speichern. Wie kann ich denn die einzelnen wxEdits/ Listboxen etc ansprechen? Ich versuche mit Notebook->SetSelection alle Pages in Fokus zu bringen und dann die Werte auszulesen, aber leider funktioniert das nicht. Vielleicht habt ihr da eine Idee?Hier der relevante Code:
... void Projekt3Frm::saveElement(wxString FileName) { TiXmlDocument doc( FileName ); doc.LoadFile(); TiXmlNode* root = doc.FirstChild( "configuration" ); TiXmlHandle docHandle( root ); TiXmlNode* parent = docHandle.FirstChild( "addressSpace" ).Node(); parent->Clear(); doc.SaveFile( FileName ); int count = Notebook->GetPageCount(); int i = count; do { Notebook->SetSelection( count ); TiXmlElement* node = new TiXmlElement( "device" ); parent->LinkEndChild( node ) ; node->SetAttribute( "name",NameEdit->GetValue() ); node->SetAttribute( "deviceType", Modell->GetStringSelection() ); node->SetAttribute( "port", InterfaceBox->GetValue() ); node->SetAttribute( "modus", " /b 19200 /P ox+0c7Z5" ); node->SetAttribute( "annotation", CommentEdit->GetValue() ); i--; } while ( i > 0 ); doc.SaveFile( FileName ); } ...
Wäre nett wenn ihr mir helfen könntet!
-
Du solltest am besten für alle deine NoteBookPages eine gemeinsame Basisklasse
machen, und ihr eine virtuelle Funktion Save2XML(...) geben.
In deine Notebookpages (sind jetzt wohl wxPanel Klassen oder ?)
überschreibst du dann die Funktion, und kannst dann dort jeweils
die Werte der Steuerelemente auslesen und abspeichern.
Speichern kannst du es dann so:int count = mynotebook->GetPageCount(); for(int i =0; i < count;i++) { dynamic_cast<MyNoteBookPageBase>(mynotebook->GetPage(i))->Save2XML(...); }
phlox
-
danke phlox81 für den vorschlag, hab jetzt ne eigene Klasse für die NotebookPages geschrieben und das funktioniert wunderbar!