设置ListView的SortType属性为stBoth。然后在OnCompare事件中输入比较大小的代码。 procedure TForm1.ListView1Compare(Sender: TObject; Item1, Item2: TListItem; Data: Integer; var Compare: Integer); var m, n :integer; begin m := StrToInt(Item1.Caption); n := StrToInt(Item2.Caption); Compare := m - n; end;
procedure TForm1.ListView1Compare(Sender: TObject; Item1, Item2: TListItem;
Data: Integer; var Compare: Integer);
var
m, n :integer;
begin
m := StrToInt(Item1.Caption);
n := StrToInt(Item2.Caption);
Compare := m - n;
end;
begin
ListView1.Items.Clear; ListView1.Items.Add.Caption := '40';
ListView1.Items.Add.Caption := '30';
ListView1.Items.Add.Caption := '50';
ListView1.Items.Add.Caption := '60'; ListView1.SortType:=stText;
end;
3楼代码上没有问题,不过需要说明的是有两个假设
1、按第一列,也就是Item.Caption列排序
2、这一列为整数数字当然这里只是提供了思路或者是方法,具体运用应当可以根据实际需要举一反三
具体而言搞清楚了TListView.SortType和OnCompare事件就差不多了
这些都是可以通过查Delphi帮助文件或其它说明搞定
1、ListView1.SortType := stData;
2、OnCompare事件处理函数中改为Item.Caption改为Item.SubItems[0],或按需要
3、调用ListView1.AlphaSort;