Nun gut, da muss man mal sehen, wie so etwas geht.
Bei mir liegt auf der Form zuerst mal ein Panel. Das Panel hat ein Stringgrid und das ist auf alClient gesetzt, d.h. es füllt das Panel komplett aus. Die Form wird dann je nach Panelgrösse angepasst.
Delphi-Quellcode:
procedure ErmittleGridBreite;
...
PanelBreite := 0;
for i := 0 to sg.ColCount - 1 do
PanelBreite := PanelBreite + sg.ColWidths [i] + 1;
...
// im FormShow dann :
ErmittleGridBreite; // setzt PanelBreite
width := PanelBreite;
PanelBreite ist übrigens als Form-protected deklariert. Warum wohl ? Deshalb die Frage nach Anzahl der Forms. "mehrere" ist natürlich gute Antwort.