procedure TForm1.DBGrid1TitleClick(Column: TColumn);
var
DataSet:TdataSet;
begin
  DataSet := Column.Field.DataSet;
    if DataSet is TCustomDataSet then
    begin
      screen.cursor:=crhourglass;
      try
        with TCustomDataSet(DataSet) do
          if (Pos(Column.Field.FieldName, Sort) = 1) and (Pos(' DESC', Sort) = 0) then
            begin
              Sort := Column.Field.FieldName + ' DESC';
              StatusBar1.panels[0].Text:=column.field.DisplayLabel+ ' :按下降排序';
            end
          else
            begin
              Sort := Column.Field.FieldName + ' ASC';
              StatusBar1.panels[0].Text:=column.field.DisplayLabel+ ' :按上升排序';
            end;
      finally
        screen.cursor:=crdefault;
      end;
    end;
end;
回答完了,请加分!

解决方案 »

  1.   

    设置TABEL的indexfieldname为要排序的字段名就可以了
      

  2.   

    对了,上面的只试用于Adotable
      

  3.   

    对了,上面的只试用于Adotable
    TCustomDataSet应该是TCustomAdoDataSet
      

  4.   

     2 wanwangzhiwang(万王之王) :
       TcustomDataset在那个单元里声明的?
      

  5.   

    设置TABEL的indexfieldname为要排序的字段名就可以了 
      

  6.   

    thedream(梦幻使者)的方法也可以,但必须是索引字段才行!
      

  7.   

    Thanks for your help !!!
      

  8.   

    设置TABEL的indexfieldname为要排序的字段名就可以了 ,但要先建立索引