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 anzeigenok, also muss der Thread ins Doc, die Eventhandler der Buttons ins View
-
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 Programmshab 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 !
-
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 !