Einzelnen Beitrag anzeigen

Alaitoc

Registriert seit: 24. Okt 2008
263 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Idee gesucht : Umsetzung von dynam. Alarmen und Werteanz

  Alt 1. Dez 2009, 01:43
Das hört sich irgendwie immernoch nach einem MVC an.

Ich hab z.b. ein Editfeld und gebe dort etwas ein, dann soll in allen anderen Grafiken die sozusagen "daran hängen"
dieser Wert auf ihre Weise dargestellt werden.

Es gibt halt immer mehrere Datenobjekte und an jedem Datenobjekt können mehrere Grafiken hängen.
Die Datenobjekte und Grafiken werden an einer Stelle miteinander verknüpft und immer wenn etwas im Datenobjekt
geändert wird, ändern sich die Grafiken.

In der Praxis sieht das in etwa so aus:

1. Du erstellst ein Datenobjekt ( in deinem Fall TMyClass ) und fügst zusätzlich noch eine Notify-Methode,
wo der Handler angesprochen wird, hinzu. Sollte sich was an den Daten ändern, wird ein Notify an den Handler gesendet.
2. Du erstellst mehrere Typen von Grafiken ( Gauge, Kreisdiagramm, etc...), jeder davon hat eine Update-Methode
wo er über eine Referenz auf das Datenobjekt zugreifen kann und sich die Daten holen können und natürlich
auch Änderungen daran vornehmen kann.
3. Du erstellst den Handler, dieser hat eine Anmelden-Methode wo man immer sagt welches Datenobjekt und welche
Grafik miteinander verknüpft werden. Bei mehrfachen Verknüpfungen meldet man das Datenobjekt mit mehreren
Grafiken an. Dann bekommt der Handler noch eine Update-Methode, also falls ein Datenobjekt ein Notify
sendet, führt der Handler seine Update-Methode aus und aktualisiert alle Grafiken die am Datenobjekt hängen.

Fazit:

Das Datenobjekt kennt die Daten und meldet wenn Änderungen vorhanden sind.
Die Grafik weiß wo die Daten liegen und stellt sich selbst da. ( Man brauch also eigentlich nicht FormX.EditX.TextX. )
Der Handler macht die Grafiken auf Änderungen innerhalb des Datenobjekt aufmerksam.

Also brauchst du nicht mit Pointern etc rumzuhantieren

Datenobjekt = Model
Grafik = View
Handler = Controller

MfG Alaitoc
  Mit Zitat antworten Zitat