Datenaustausch zwischen CPropertypages.



  • Hallo,
    ich will einen Wizard erstellen, bei dem (natürlich!!) Daten eingegeben und ausgetauscht werden sollen.
    Dafür habe ich eine dialogfeldbasierende Anwendung erstellt, und auf Knopfdruck in diesem Dialog (da gibt es mehrere Möglichkeiten) wird ein CPropertySheet und die entsprechenden CPropertyPages erstellt. Dann sollen die in die Propertypages eingegebenen Daten sowohl an mein Hauptdialogfeld, als auch an die letzte Propertypage meines Wizards übergeben werden. Im Hauptdialogfeld kann ich auf die Daten zugreifen, aber in der letzten Propertypage kann ich das nicht...wie kann ich das erreichen? (Ich möchte nämlich in der letzten Propertypage eine Art Zusammenfassung der bisher eingegebenen Daten geben, wie in einem "richtigen" Wizard eben).

    Für eure Hilfe bin ich wie immer sehr dankbar! 🙂



  • Kannst ja mal ausprobieren, ob das hier wirklich funktioniert:
    http://www.c-plusplus.net/forum/viewtopic-var-t-is-72430.html



  • Cool, danke für die schnelle Antwort, ich probiers gleich mal aus! 😃 😃 😃



  • Ich hab gar keine eigene Propertysheet-Klasse, ich rufe einfach nur ein CPropertysheet -Objekt auf, und damit mach ich dann weiter.

    CPropertySheet PropSheet;
    CSeite1 page1;
    CSeite2 page2;
    CSeite3 page3;
    PropSheet.SetWizardMode();
    PropSheet.AddPage(&seite1);
    PropSheet.AddPage(&seite2);
    

    Wie kann ich denn hier eine Member-Variable für meinen PropSheet einfügen???

    Diese Frage ist bestimmt SAUdumm, aber so wie ich es probiert hab, ging´s nicht!

    Vielen Dank!



  • Du könntest z.B. für jede PropertyPage Membervariablen anlegen, die du bei OnSetActive() bzw. OnKillActive() von dem verlassenen Dialog an den aufgerufenen übergibst. Da bräuchtest du aber alle Member in allen Pages. Klingt nach ziemlich viel Schreibkram und vielleicht ein bischen umständlich, könnte aber klappen. Könnte auch Probleme mit Kreisreferenzen geben, wenn man versucht in jeder Page ein Objekt der anderen Pages zu erzeugen... Geht vielleicht mit globalen Variablen (mit extern), aber das klingt ja nun wieder ziemlich "böse"...

    Ansonsten könntest du vielleicht noch eine Klasse für die Datenhaltung schreiben. Also nur eine Klasse mit den entsprechenden Membervariablen. Dann müsstest du einen entsprechenden Pointer auf diese Klasse bei OnSetActive() bzw. OnKillActive() zwischen den Pages übergeben.


Anmelden zum Antworten