Welches DBGrid nutzt du? Ich nehme immer das aus der JVCL.
Dort kann man einstellen, ob die Spaltenbreite automatisch ermittelt werden soll. Man kann auch eine Mindest- und eine Maximalbreite der Spalten festlegen.
Ansonsten nach dem Öffnen der Datenmenge die Spaltenbreite selbst setzen:
Delphi-Quellcode:
var
i : Integer;
begin
DBGrid1.DataSource.DataSet.Open;
for i := 0 to DBGrid1.Columns.Count - 1 do begin
DBGrid1.Columns[i].Width := Min(DBGrid1.Columns[i].Width,120);
end;
end;
Dies müsste dann einer maximalen Spaltenbreite von 120 entsprechen.
(ungetestet, nur hingedaddelt)