• Delphi ListView排序

    • 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;
      
      

Powered by Typecho)))   ICP:蜀ICP备05009250号