AI摘要

文章介绍了如何在Delphi中实现ListView控件的排序功能。通过定义一个全局变量m_bSort来控制正反排序,使用CustomSortProc回调函数来比较两个列表项,并根据ParamSort参数确定比较的列。在lv_SelectedHDTCColumnClick事件中调用CustomSort方法进行排序,并改变m_bSort的值以实现正反排序切换。
文章介绍了如何在
var
  m_bSort:Boolean;   //控制正反排序的变量

implementation


{$R *.dfm}
//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 TFrm_CommunityModify.lv_SelectedHDTCColumnClick(Sender: TObject;
  Column: TListColumn);
begin
      lv_SelectedHDTC.CustomSort(@CustomSortProc,Column.Index);
      m_bSort:=not m_bSort;
end;



最后修改:2020 年 06 月 17 日
点赞的人是最酷的