Alternativ ginge auch ein Nachfahre von TPersistent, welcher dann über TWriter und TWriter serialisiert würde.
Vorteil: Man hätte eine halbwegs dynamische Datenstruktur im Stream, welche ein bekanntes Datenformat besitzt und die ihren inneren Aufbau kennt.
So könnte man problemloser auf eine Veränderung des Aufbaus der eigenen Komponente ragieren.
PS: Die DFMs sind in dem Format gespeichert. Also oftmals zwar in der Text-Variante davon, aber zum Speichern/Laden wird die Binärvariante verwendet.
Natürlich könnte man auch noch andere Formate nutzen, wie z.B. JSON und
XML.