Ver Mensaje Individual
  #2  
Antiguo 07-07-2011
Avatar de juanlaplata
juanlaplata juanlaplata is offline
Miembro
 
Registrado: ene 2007
Ubicación: La Plata, Bs. As. (Argentina)
Posts: 212
Reputación: 20
juanlaplata Va por buen camino
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}
Responder Con Cita