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. Meine DBGrids starten meist – d.h. wenn es so viele Felder in der Tabelle gibt, daß sie auch auf einem sehr breiten Screen nicht alle gleichzeitig darstellbar sind – mit einer Standard-Spaltenbreite, die sich nicht an der möglichen Länge der Tabellen-Inhalte orientiert, sondern an der Länge des Spalten-Titels. Der Anwender kann sich dann seine bevorzugten Spaltenbreiten selber einstellen, seine Einstellungen werden beim Beenden des Programms (oder auch, wenn man will, nach jeder Spaltenbreiten-Änderung) in der
DB gespeichert und bei Programmstart wieder eingelesen und angewendet:
Delphi-Quellcode:
// Spaltenbreiten DBGrid_V_Artikel in FormMain
z := FormMain.DBGrid_V_Artikel.Columns.Count -1;
FOR i := 0 TO z DO
BEGIN
Aus := IntToStr(i);
IF i < 10 THEN Aus := N + Aus;
Aus := 'TAB_ARTIKEL_' + Aus;
FormMain.DBGrid_V_Artikel.Columns[i].Width := DatMod.Dset_Tabellen.FieldByName(Aus).AsInteger;
END;