Fazer as colunas de um DBGrid se ajustarem ao seu conteúdo

Delphi

17/08/2006

Tem como fazer as colunas de um DBGrid se ajustarem ao seu conteúdo?


Mkoch

Mkoch

Curtidas 0

Respostas

Night_man

Night_man

17/08/2006

tenta o seguinte
var
  Idx: Integer;
begin
  for Idx := 0 to DBGrid1.Columns.Count - 1  do
    DBGrid1.Columns[Idx].Width := DBGrid1.Canvas.TextWidth(DBGrid1.Columns[Idx].Title.Caption);

  DBGrid1.DataSource.DataSet.DisableControls;
  try
    DBGrid1.DataSource.DataSet.First;
    while (not DBGrid1.DataSource.DataSet.Eof) do
    begin
      for Idx := 0 to DBGrid1.Columns.Count - 1  do
      begin
        if (DBGrid1.Canvas.TextWidth(DBGrid1.Columns[Idx].Field.Text) > DBGrid1.Columns[Idx].Width) then
          DBGrid1.Columns[Idx].Width := DBGrid1.Canvas.TextWidth(DBGrid1.Columns[Idx].Field.Text);
      end;
      DBGrid1.DataSource.DataSet.Next;
    end;
  finally
    DBGrid1.DataSource.DataSet.First;
    DBGrid1.DataSource.DataSet.EnableControls;
  end;


o metodo TextWidth retorna o tamanho, em pixels, de um texto de acordo com a font.
estamos percorrendo o dataset para ajustar cada uma das columans ao seu maior texto, sendo que eh inicializado com o tamanho do title da coluna[/code]


GOSTEI 0
Mkoch

Mkoch

17/08/2006

Valeu, funcionou muito bem, muito obrigado.


GOSTEI 0
POSTAR