定义一函数:
procedure Tdata.paixu(adoq1 : Tadoquery; dgrd1 : Tdbgrid; Column : TColumn);
begin
  for i := 1 to dgrd1.Columns.Count do
  begin
    dgrd1.Columns[i-1].Title.font.color := clwindowtext;
    dgrd1.Columns[i-1].Title.font.style := [];
  end;  if adoq1.Sort <>(column.FieldName+'ASC') then  //判断原排序方式
  begin
    adoq1.Sort := Column.FieldName+'ASC';
    Column.Title.Font.Color := clred ;     //改变标题行字体为红色,表示当前的排序方式为升序
    Column.Title.Font.Style := [fsBold];
  end
  else
  begin
    adoq1.Sort := Column.FieldName+'DESC';
    Column.Title.Font.Color := clblue ;     //改变标题行字体为蓝色,表示当前的排序方式为降序
    Column.Title.Font.Style := [fsBold];
  end;end;然后在窗体中调用
procedure Tfm_bm.dgrd1TitleClick(Column: TColumn);
begin
  data.paixu(adoq1,dgrd1,column);
end;最后运行时报错“在对应所需名称或序数的集合中,未找到项目”,我查看了我查询的表没有问题,在dbgrid中所指定的列也没有错,到底是什么原因,急切期待中......