点击DBGrid的Title進行排序,適用於ADODataSet,ADOTable,ADOQuery.
procedure DataSort(Column: TField; DataSet:TDataSet);
var
str:string;
begin
if DataSet.IsEmpty then exit;
if Column.DataType in[ftMemo, ftGraphic, ftFmtMemo] then exit;
str:=Trim(TADODataSet(DataSet).Sort);
if (str=‘‘)or(Copy(str,Length(str)-3,4)=‘DESC‘) then
TADODataSet(DataSet).Sort:=Column.FieldName+‘ ASC‘
else
TADODataSet(DataSet).Sort:=Column.FieldName+‘ DESC‘;
end;
例;
procedure TModeForm3.DBGrid1TitleClick(Column: TColumn);
begin
DataSort(Column.Field,DBGrid1.DataSource.DataSet);
end;