for i:=0 to DBGrid1.Columns.Count -1 do 
 begin  
     fieldname:=dbgrid1.Columns [i].Field.FieldName; 
     dbgrid1.Columns[i].Field.DisplayWidth:=Length(aquery1.FieldByName(fieldname).AsString);
 end;