循环数据集的时候 如何能获取对应的dbgrid的columns

delphi 7.0  

dbgrid1.datasource.dataset :=adoquery1;

for i:=0 to adoquery1.fields.count -1 do 
begin
  if adoquery1.fields[i].fieldname='aaaa' then 
     adoquery1.fields[i].visable :=False;
  if adoquery1.fields[i].fieldname='best' then
    dbgrid1.columns(adoquery1.fields[i].fieldname).width:=60;
   //问题就是这一句 如何在这个数据集的循环里 给对应的columns指定宽度. 上面的写法是错误的 该怎么写呢?
   //我就会再这里遍历一遍dbgrid1 找到这个字段然后指定宽度。能不遍历dbgrid直接给指定宽度吗?
end