var m_bSort: boolean=false; //控制正反排序的变量 //ListView排序的回调函数,默认的是快速排序法,也可以自己在这里做算法 function CustomSortProc(Item1, Item2: TListItem; ParamSort: integer): integer; stdcall; var txt1,txt2 : string; begin if ParamSort <> 0 then begin try 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; except 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 TForm1.ListView1ColumnClick(Sender: TObject; Column: TListColumn); begin ListView1.CustomSort(@CustomSortProc, Column.Index); m_bSort := not m_bSort; end;
|
请发表评论