Ich lasse gewöhnlich den Anwender entscheiden, wie breit er seine Spalten haben möchte, und speichere die Abmessungen in einer extra Tabelle, in der nur solche Anwender-Daten hinterlegt werden.
Dito, nur streame ich die DBGrid.Columns in ein Blob-Feld. Damit spart man sich das Iterieren und hat aber auch gleich andere Eigenschaften (wie zB Lookup-Listen u.ä.) mit drin.
Die Einstellungen in ein Blobfeld zu streamen ist mir noch nicht in den Sinn gekommen, scheint aber eine gute Idee zu sein. Muß ich bei Gelegenheit mal ausprobieren. Vielen Dank für deine Anregung.