Zitat:
Eigentlich muss eine Klasse, die Spieler oder Mannschaften verwaltet, gar nicht wissen, dass diese in
XML-dateien gespeichert werden.
Ja, das habe ich schon so gelöst (hatte die Beschreibung etwas vereinfacht). Die Methoden der
DC´s greifen halt über Read- und Write-Funktionen auf
XML-Knoten zu.
Zitat:
In OnPaint gehört nur Zeichencode.
Ok, ich she aber noch keine bessere Lösung. In den Daten gibt es irgendeine Änderung. Die sichbaren Controls werden darüber informiert. Wenn sie gerade unsichtbar oder in einem ausgeblendeten Formular oder register sind, ist denen die Änderung egal.
Selektiert der Nutzer aber nun das übergeordnete Register oder blendet das übergeordnete Formular wieder ein, müssen sich die Controls ja mit den aktuellen Daten zeichnen...
Daher aktualisiere ich
Text := NeuerWertAusDatenbank
einfach, bevor sich die Komponente zeichnet.
Eine wirklich bessere Lösung fällt mir nicht ein, außer alle benötigten Daten direkt bei der Änderungsnachricht abzurufen und in Variablen abzulegen. Dann kann Paint diese hinterlegten Werte beim nächsten Zeichnen benutzen.
Die 3 Problem dabei sind m.E.:
1) dass alle zig000 Komponenten ständig die Daten abfragen, obwohl sie überhaupt nicht angezeigt werden
2) für alle "Felder" private Variablen zum Zwischenspeichern angelegt werden müssen (doppelte Datenhaltung)
3) Für einige Komponentendarstellungen teilw. recht komplexe Datenermittlungen (Funktionen, Suchen, Berechnungen) möglich sein können. Das wäre unnötig, wenn die Komponente ja gar nicht angezeigt wird.
Deshalb kam ich auf meine Lösung...