Hallo,
naschön, das Bild wird deutlicher.
Da könntest Du es mal mit Threads zum Speichern probieren (da hab' ich aber keine Ahnung von).
Aber bedenke bitte vorher:
Anwender speichert, während der Speichervorgang im Hintergrund läuft (kann ja was dauern), speichert der Anwender schon wieder, er ist halt ungeduldig oder hatte noch eine kleine Korrektur...
Damit muss Du dann umgehen können.
Kannst Du an den einzelnen
MDI-Fenstern erkennen, ob es eine Änderung gegeben hat? Wenn ja, nur die geänderten speichern.
Wie oft muss der Anwender speichern, alle Nase lang oder wenn er die Arbeit erledigt hat...
Mach' Deinen "Zeittest" doch bitte auch mal mit TMemo und TRichEdit mit "handelsüblichen" Datenmengen, bei den TCharts mag so eine Grafik schon einiges an Platz/Zeit benötigen. In welchem Umfang wird denn was benötigt. Sind große Grafiken eher der Normalfall oder eher die Ausnahme?
Was ist mit Datenbankkomponenten?
TMemo -> TDBMemo
TRichEdit -> TDBRichEdit
TChart -> TDBChart
Gespeichert wird letztendlich beim Post, unabhängig davon, ob nun "normale" oder Datenbankkomponenten genutzt werden. Die Datenbankkomponenten ersparen Dir den Transfer der Daten von der nicht datenbanksensitiven Komponente in die Datenbankkomponente (tVenues.FieldByName('irgendwas').As...).