Logisches Problem, gemeinsame Daten für zwei Klassen



  • Hi Leuts,
    ich habe jetzt endlich(!) mein wxPack am Laufen und setze gerade eine neue Anwendung auf. Dazu habe ich mit dem Assistenten für Visula Studio ein leeres Projekt erzeugt.
    Der Assisten hat mir nun eine Frameklasse erzeugt, und eine Panel-Klasse.
    Der Frame hat einen Menu-Bar und im Konstruktor des Frames wird das Panel so angelegt:
    wxPanel* panel = new iLoggerPanel( this );

    Nun soll das Programm Daten sammeln, ist also ein Datenlogger.
    Diese daten möchte ich zum Einen in einem Listcontrol im Panel anzeigen, zum Anderen per Menü auch abspeichern können.
    Ergo müssen beide Klassen Zugriff auf die Daten haben (welche ich in einer Liste abspeichern möchte).
    Wie gehe ich da vor ?

    Greets
    Grieko


  • Mod

    Schau dir mal das Designpattern Model View Controller an.



  • aber wie sieht das in der Praxis aus ?
    Angenommen:
    Ich erstelle eine eigene Listenklasse, worin die Daten gespeichert werden.
    Die Frame-Klasse hat nun eine Memebervariable der Listklasse. Somit kann ich im Frame einen Timer laufen lassen, welcher die Daten einsammelt. Und die Frame-Klasse kann über das Menü die Daten auch lesen und speichern.
    Auch OK.
    Aber: Wie informiere ich die Panel-Klasse darüber, dass es neue Daten gibt ? Wie stelle ich diese Daten zur Verfügung ?



  • sorry, ich glaube ich habe jetzt das Brett vorm Kopf abgelegt 🙂
    Sollte eigentlich ganz einfach sein:
    Den zeiger auf die Pane muss ich als Member in die Frame-Klasse übernehmen.
    Dadurch habe ich dann in der Frame-Klasse Zugriff auf die Public-Methoden der Pane.
    Hier muss ich entsprechende Funktionen definieren (zum Bleistift: AddData(xyz)).

    Werde ich heute abend gleich mal testen


Anmelden zum Antworten