Pointer auf ein Dokument



  • Hallo zusammen,

    ich hab mal wieder ne kleine Frage. Derzeit habe ich in meinem Projekt fast alle Methoden in der View. Normalerweise sollten diese aber in die DOC. Ich hab halt so angefangen, weils am einfachsten ging und jetzt wollt ich doch gerne alles standart konform entwickeln.

    Könnte mir das jemand bitte erklären, wie ich das korrekt mache?

    👍



  • Da musst Du schon mal sagen, was Du genau im View machst. Wenn Du das nach der Idee der Doc/View-Trennung machen willst, so enthält im wesentlichen das View alle Methoden zum Zeichnen und Drucken (also der Darstellung), das Doc verwaltet die Datenstrukturen dazu.
    Im View kannste Dir aber einen Zeiger aufs Doc mit GetDocument() holen.



  • Hi Andy,

    genau das habe ich vor 👍 , wie würde das expliziet auschauten mit dem GetDocument(), kann mir da momentan nicht recht viel vorstellen.

    Hast du vielleicht nen Beispielcode, also ne Zeile wie du GetDocument() verwendest?



  • Mupfel schrieb:

    Hi Andy,

    genau das habe ich vor 👍 , wie würde das expliziet auschauten mit dem GetDocument(), kann mir da momentan nicht recht viel vorstellen.

    Hast du vielleicht nen Beispielcode, also ne Zeile wie du GetDocument() verwendest?

    Was heißt hier Beispielcode? Ich kann ja nicht ahnen, was Du in Deinem View und Deinem Doc machst. Du wolltest doch das ganze auseinanderstricken. Dazu musst Du Dir erst mal im Klaren sein, was Du wie machen willst. Die Verwendung des Zeigers funktioniert etwa so:

    void CDeineViewKlasse::IrgendeineViewMethode()
    {
    	CDeinDoc* pDoc = GetDocument();
    	ASSERT_VALID(pDoc);
    	if (!pDoc)
    		return;
    
    	pDoc->DeineDocMethode();		//Zugriff auf Methoden
    	pDoc->DeineDocVariable=neuerWert;	//Zugriff auf Variablen
    
    }
    

    Man kann sich genauso auch im Doc einen Zeiger aufs View holen. Dazu kannst Du hier mal schauen.



  • Hi,

    pDoc-> das war mir im Moment nur nicht so klar. Danke hast mir sehr weitergeholfen!


Anmelden zum Antworten