Bueno, no se a que te refieres con el formato de la grilla, ni tampoco que tipo de grilla utilizas.
Este es un ejemplo para el Ancho de las Columnas de un DBGrid.
Le asigna el mayor ancho entre texto del Titulo y el de la 1ra Fila de Datos.
En mi caso, ademas de tengo seteado el ColumnResize = True, con lo cual a 1ra impresion la grilla se ve bien, de ser necesario se pueden ampliar los anchos de columnas.
He leido tambien en este foro, un proceso que recorria la cantidad de registros a mostrar y se quedaba con el maximo ancho, el cual aplicaba.
Codigo del cual modifique hasta quedarme con este que muestro; por que me parecia muy denso el recorrido, etc.
Código Delphi
[-]
procedure TFormXX.FormActivate(Sender: TObject);
var i:integer;
begin
for i:= 0 to DBGrid1.Columns.Count-1 do
begin
DBGrid1.Columns[i].Title.Alignment:= taCenter;
DBGrid1.Columns[i].Width :=
Max((DBGrid1.Canvas.TextWidth(DBGrid1.Columns[i].Field.AsString) +
20),
(DBGrid1.Canvas.TextWidth(DBGrid1.Columns[i].Title.Caption) +
10))
;
end;
end;
PD: Max (num1, num2); {Funcion de la Unit Math}