Eine grundsätzliche Lösung des Problems, dass DBGRIDs falsch skalieren, wäre natürlich schön. Für den Moment würde es mir aber völlig ausreichen, wenn ich zur Laufzeit feststellen könnte, ob die Spalten (dbgrid.columns) eines DBGRID zur Laufzeit oder zur Designzeit erzeugt wurden.
Wenn sich das feststellen läßt, genügt ein einziger zentral im ONCREATE() meiner Fensterhierachie ganz oben eingebauter Prozeduraufruf, um alle DBGRIDs in allen meinen Programmen abzudecken. Wenn nicht, muss ich diese Prozedur für jedes DBGRID mit manueller Spaltendefinition einzeln aufrufen.
Natürlich könnte man die Spalten der TABLE oder der
QUERY mit denen des DBGRID vergleichen und bei Gleichheit davon ausgehen, dass keine manuelle Designtime-Spaltendefinition vorliegt, aber das ist nicht garantiert und außerdem ein gewisser Rechenaufwand. Ich suche nach einer eleganteren Lösung.