请问listview的排序问题!!!!!!!!!!???????????????????????????? 
     listview的viewstyle属性设为vsReport,请问怎样可以点击一下某个column就根据这个column的的子项 目进行升序或降序序排序 vb6.0是这样做的,代码如下: private sub listview_columnclick(byval columnheader as columnheader)  listview.sortorder=0  '设为升序   listview.sortkey= columnheader.index -1  ' 设置点击的column为排序的依据    listview.sorted=true '开始排序 
    end sub  
请问在delphi中的代码应该怎样写 ??????????? 感激万分!!! 
--

解决方案 »

  1.   

    在DELPHI中操作与VB不一样
    具体可以查看TCUSTOMLISTVIEW的columnclick;里面有具体的操作.
      

  2.   

    首先声明两个全局变量来保存被单据的列的索引号和当前索引状态(ASC或DESC)
    在你的单元接口段的private下声明:
    columntosort:integer;
    isascsort:boolean;在ListView的ColumnClick事件里给columntosort赋值(被单击列的索引号),调用AlphaSort:
    procedure TForm1.ListView1ColumnClick(Sender: TObject;
      Column: TListColumn);
    begin
      isascsort:=not isascsort;
      columntosort:=column.Index;
      (sender as tcustomlistview).AlphaSort;
    end;然后在ListView的Compare事件里写排序代码:procedure TForm1.ListView1Compare(Sender: TObject; Item1, Item2: TListItem;
      Data: Integer; var Compare: Integer);
    var
      xx:integer;
    begin
      if columntosort=0 then//按标题列排序;
        if isascsort then
          compare:=comparetext(item1.Caption,item2.Caption)
        else
          compare:=comparetext(item2.Caption,item1.Caption)
      else//按SubItems排序
      begin
        xx:=columntosort-1;
        if isascsort then
           compare:=comparetext(item1.SubItems[xx],item2.SubItems[xx])
        else
           compare:=comparetext(item2.SubItems[xx],item1.SubItems[xx]);
      end;
    end;以上须注意排序原理,相应函数可查DELPHI帮助.