在TitleClick事件里写上下列代码,则能实现你的功能 procedure TYFrmDyCpQry.DBGridEh1TitleClick(Column: TColumnEh); var str: string; begin case Column.Title.SortMarker of //列排序 smNoneEh: begin Column.Title.SortMarker := smDownEh; str := 'order by ' + Column.FieldName + ' DESC'; end; smDownEh: begin Column.Title.SortMarker := smUpEh; str := 'order by ' + Column.FieldName; end; smUpEh: begin Column.Title.SortMarker := smDownEh; str := 'order by ' + Column.FieldName + ' DESC'; end; end; end;
首先设置dbgrideh的optionseh中的dghautosorting为true 然后加入下列代码:(dbgrideh的数据源是adoquery1) procedure TForm1.DBGridEh1TitleClick(Column: TColumnEh); begin case Column.Title.SortMarker of smDownEh: begin adoquery1.Sort:=column.fieldname+' DESC '; end; smUpEh: begin adoquery1.Sort:=column.fieldname+' ASC '; end; end; end;
procedure TYFrmDyCpQry.DBGridEh1TitleClick(Column: TColumnEh);
var
str: string;
begin
case Column.Title.SortMarker of //列排序
smNoneEh:
begin
Column.Title.SortMarker := smDownEh;
str := 'order by ' + Column.FieldName + ' DESC';
end;
smDownEh:
begin
Column.Title.SortMarker := smUpEh;
str := 'order by ' + Column.FieldName;
end;
smUpEh:
begin
Column.Title.SortMarker := smDownEh;
str := 'order by ' + Column.FieldName + ' DESC';
end;
end;
end;
然后加入下列代码:(dbgrideh的数据源是adoquery1)
procedure TForm1.DBGridEh1TitleClick(Column: TColumnEh);
begin
case Column.Title.SortMarker of
smDownEh:
begin
adoquery1.Sort:=column.fieldname+' DESC ';
end;
smUpEh:
begin
adoquery1.Sort:=column.fieldname+' ASC ';
end;
end;
end;