Fragen zu MDI (Doc/View)



  • Hi,

    ich habe mal ein paar Fragen zu meinem Projekt. Ich bin dabei, mir eine Anwendung zu schreiben, die die Com-Schnittstelle ansteuert, davon Daten empfängt und die dann in einem Fenster entsprechend aufbereitet anzeigt.
    Meine Anwendung ist MDI mit Doc/View.

    Ich weiß jetzt bloß nicht genau, wo welche Programmteile hinkommen ! ich brauche einen Thread, der dauernd prüft, ob neue Daten an der Schnittstelle vorhanden sind. Kommt der Thread ins Doc ?

    Habe noch 4 Buttons (Start, Stop, Pause, Logdatei anzeigen), kommen die Eventhandler ins View ??
    Und was kommt denn in meinem Projekt überhaupt ins Doc ?? z.b. die Logdatei speichern ??

    Wäre schön, wenn sich jemand meine Fragen mal durch den Kopf gehen lassen könnte.
    Thx schonmal



  • DOC/VIEW sagt es schon.

    DOC ist Daten und View ist Anzeige der Daten.
    Brauchst du überhaupt ein MDI?
    Reicht nicht auch SDI? Du brauchst doch nur ein DOC. MDI verwaltet viele DOC.
    Reicht nicht auch ein SDI mit Formview?



  • bin da eigentlich auch noch am Überlegen 🙂

    müsste aber auch ein SDI reichen, der User kann das Programm wenn es unbedingt sein muss, auch mehrmals öffnen
    Problem ist nur, dass es vorkommen kann, dass am Com-Port mehrere Geräte hängen können, bei ner SDI kann ich dann immer bloß die Daten von einem anzeigen

    ok, also muss der Thread ins Doc, die Eventhandler der Buttons ins View


  • Mod

    Ein DOC ist eine Klasse. Ein Thread kommt in keine Klasse, sondern benutzt verschiedene Daten. Wichtig ist hier, dass Du entsprechende Synchronisation.

    Wenn Du mehrere Prozesse (SDI) unterstützen willst, könntest Du den I/O mit dem COM Port in einen eigenen Prozess auslagern.



  • wenn wir gerade dabei sind:
    wie ist es denn möglich, aus der View heraus dem Doc zu sagen, er soll den Thread starten ??

    habt ihr da ne Idee ??
    ist ne blöde Frage, ich weiß 🙂

    EDIT: war etwas langsam
    ist hier n reines "Aufbau-Problem" meines Programms

    hab keine Idee, wie ich das alles anstellen soll



  • Du sagt dem DOC nicht das er den Thread starten soll.
    Der Thread ist hoffentlich eine eigene Klasse.
    Der Thread schreibt dann die Daten ins DOC. Die View holt sich die Daten dann aus dem DOC und zeigt sie an.



  • ja, ist in einer eigenen Klasse
    habe da auch etwas zu kompliziert (und dumm 🙂 ) gedacht, starte den Thread in der View, wenn auf Start geklickt wurde, Thread wird fortgesetzt, wenn vorher auf Pause geklickt wurde und dann wieder auf Start ...

    ok, danke, war n ziemlicher Denkfehler von mir !


  • Mod

    Starte den Thread von dort wo Du möchtest.
    Gib ihm die Daten die er braucht (Instanzen auf Klassen).
    Schütze die Daten entsprechend gegen gemeinsamen Zugriff.

    Das hat primär nichts mit Doc/View zu tun. Du musst Dir Gedanken machen wie und von wo Du mit dem Thread kommunizieren willst.

    Die Daten gehören ins Doc.
    Wie teilt also der Workerthread dem Mainthread über eine Änderung der Daten mit.



  • ok, werde das Gesagte mit berücksichtigen
    vielen Dank !


Anmelden zum Antworten