Forms benachrichtigen fuer datenaktualisierung
-
hola
folgendes problem:
ich hab eine MDI-anwendung mit verscheidenen mdi-childs die auch oeffters vorkommen koennen. je nach auswahl des users sind also unterschiedliche fenster offen. die fenster beinhalten unter anderem daten die sie in DrawGrids bzw ListBoxen anzeigen. wenn nun in irgendeinem der fenster was an den daten geaendert wird, moechte ich die restlichen fenster dazu bewegen das sie die anzeige aktualisieren, falls sie die geaenderten daten ueberhaupt anzeigen.
wie mache ich das am besten ?Meep Meep
-
Hallo,
Packe in jede Child Form eine Aktualisierungsfunktion, die du dann von der Parentform aus aufrufst (die hat ja eine Liste aller Childs). Die Hauptformaktualisierungsfunktion kannst du dann von einem beliebigen Child aus aufrufen. Da hast du denn mehrere Möglichkeiten.
1. Inkludiere den Header der Parentform in die Childs und mache dessen Funktionen dort bekannt. Dann kannst du über Parent (und entsprechenden Cast) die Aktualisierungsfunktion direkt aufrufen.
Vorteil: Einfach zu implementieren
Nachteil: erhöht Komplexität und Kompilierungszeit
2. Übergebe vom Parent an jedes Child eine Callbackfunktion die das erledigt. Damit entfällt das Einbinden des Parent-Haeders in die Childs.
Nachteil: komplizierter zu implementieren
Vorteil: Kompilierungszeit normal
3. Sende nutzerdefinierte Botschaften vom Child zum Parent.
Nachteil: komplizierter zu implementieren, schwieriger zu debuggen, Datenübertragung begrenzt
Vorteil: Kompilierungszeit normal, sehr flexibel