定义一个全局变量
var blOrder :Boolean = False;
procedure TForm1.DBGrid1TitleClick(Column: TColumn);
var Sql:String;
sOrder :String;
begin
if blOrder then
begin
sOrder := 'DESC';
blOrder := False;
end
else
begin
sOrder := '';
blOrder := True;
end;
Sql := 'SELECT * FROM Table ORDER BY '+
Column.FieldName +' '+sOrder;
end;
var blOrder :Boolean = False;
procedure TForm1.DBGrid1TitleClick(Column: TColumn);
var Sql:String;
sOrder :String;
begin
if blOrder then
begin
sOrder := 'DESC';
blOrder := False;
end
else
begin
sOrder := '';
blOrder := True;
end;
Sql := 'SELECT * FROM Table ORDER BY '+
Column.FieldName +' '+sOrder;
end;
//排序的回调函数
function CustomSortProc(Item1, Item2: TListItem; ParamSort: integer): integer; stdcall;
var txt1,txt2 : string;
begin
if ParamSort <> 0 then begin
txt1 := Item1.SubItems.Strings[ParamSort - 1];
txt2 := Item2.SubItems.Strings[ParamSort - 1]; if m_bSort then begin //这个变量来控制正反排序
Result := CompareText(txt1,txt2);
end else begin
Result := -CompareText(txt1,txt2);
end;
end else begin
if m_bSort then begin
Result := CompareText(Item1.Caption,Item2.Caption);
end else begin
Result := -CompareText(Item1.Caption,Item2.Caption);
end;
end;
end;procedure TFmSearch.ListViewSearchResultColumnClick(Sender: TObject;
Column: TListColumn);
begin
ListViewSearchResult.CustomSort(@CustomSortProc, Column.Index);
m_bSort := not m_bSort;
end;