este codigo ajusta el ancho de la colunma de un DBGrid a el maximo entre la cantidad de letras del titulo y de la cantidad de letras del dato de la primier fila y columna correspondiente.
Lo q no quita q mas abajo el ancho de columna deba cambiar .
Para eso, deberias calcular 1ro, cual sera el ancho max para cada columna, con el costo q eso trae ..
Código Delphi
[-]for i:= 0 to Grilla.Columns.Count-1 do
begin
Grilla.Columns[i].Title.Alignment:= taCenter;
Grilla.Columns[i].Width :=
Max((Grilla.Canvas.TextWidth(Grilla.Columns[i].Field.AsString)+20),
(Grilla.Canvas.TextWidth(Grilla.Columns[i].Title.Caption)+10))
;
end;