Ver Mensaje Individual
  #4  
Antiguo 07-01-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Si lo que buscas es autoajustar las columnas del TDBGrid, probá con este procedimiento:
Código Delphi [-]
procedure AdjustColumnsWidth(ADBGrid: TDBGrid);
const
  SEP = 10; 
var
  Temp, i: Integer;
  LongMax: array [0..30] of Integer;  
begin
  with ADBGrid do
  begin
    Canvas.Font := Font;
    for i := 0 to Columns.Count - 1 do
      LongMax[i] := Canvas.TextWidth(Fields[i].FieldName) + SEP;
    DataSource.DataSet.First;
    while not DataSource.DataSet.EOF do
    begin
      for i := 0 to Columns.Count - 1 do
      begin
        Temp := Canvas.TextWidth(trim(Columns[i].Field.DisplayText)) + SEP;
        if Temp > LongMax[i] then LongMax[i] := Temp;
      end; {for}
      DataSource.DataSet.Next;
    end;
    DataSource.DataSet.First;
    for i := 0 to Columns.Count - 1 do
      if LongMax[i] > 0 then
        Columns[i].Width := LongMax[i];
  end;
end;

Llamada de ejemplo:
Código Delphi [-]
begin
  AdjustColumnsWidth(DBGrid1);
  ...

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita