procedure ResizeColumns(); var J,MaxTextWidth, fieldwith : Integer; begin // On fait toutes les colonnes du TDBGrid For J:=0 to Form1.GridFic.FieldCount-1 do begin // Initialisation MaxTextWidth := 0; // On recupere la longueur la plus grande contenu dans la colonne Form1.GridFic.DataSource.DataSet.First; while not form1.GridFic.DataSource.DataSet.Eof do begin fieldwith := Form1.GridFic.Canvas.TextWidth(form1.GridFic.datasource.DataSet.Fields.Fields[J].AsString); if (fieldwith > MaxTextWidth) then MaxTextWidth := fieldwith; Form1.GridFic.DataSource.DataSet.Next; end; // On applique la nouvelle taille a condition que la colonne n'était pas vide If MaxTextWidth > 0 then form1.GridFic.Columns[J].Width := MaxTextWidth + 20; end; end;