listview内容如下:
---------------------------------------
1 DUM2 3 Y 2
2 DUM1 5.3 W 2.3
3 DUM3 4.6 W 2.05
4 DUM2 3.56 Y 2.5
5 DUM1 7.4 Y 1.5
6 DUM2 3.56 Y 1.5
7 DUM2 3.56 W 1.5
8 DUM2 3 W 1.5
---------------------------------------
要求排序后为如下顺序:
---------------------------------------
2 DUM1 5.3 W 2.3
5 DUM1 7.4 Y 1.5
1 DUM2 3 Y 2
8 DUM2 3 W 1.5
6 DUM2 3.56 Y 1.5
4 DUM2 3.56 Y 2.5
7 DUM2 3.56 W 1.5
3 DUM3 4.6 W 2.05
---------------------------------------即分别按照第2列到第5列排序(第1列序号不用排),类似数据表中的"order by"排序(其中第4列按先Y后W的顺序),求解排序方法!!!
---------------------------------------
1 DUM2 3 Y 2
2 DUM1 5.3 W 2.3
3 DUM3 4.6 W 2.05
4 DUM2 3.56 Y 2.5
5 DUM1 7.4 Y 1.5
6 DUM2 3.56 Y 1.5
7 DUM2 3.56 W 1.5
8 DUM2 3 W 1.5
---------------------------------------
要求排序后为如下顺序:
---------------------------------------
2 DUM1 5.3 W 2.3
5 DUM1 7.4 Y 1.5
1 DUM2 3 Y 2
8 DUM2 3 W 1.5
6 DUM2 3.56 Y 1.5
4 DUM2 3.56 Y 2.5
7 DUM2 3.56 W 1.5
3 DUM3 4.6 W 2.05
---------------------------------------即分别按照第2列到第5列排序(第1列序号不用排),类似数据表中的"order by"排序(其中第4列按先Y后W的顺序),求解排序方法!!!
ColumnToSort := Column.Index;
(Sender as TCustomListView).AlphaSort;
end;
procedure TForm1.ListView1Compare(Sender: TObject; Item1, Item2: TListItem; Data: Integer; var Compare: Integer);
var
ix: Integer;
begin
if ColumnToSort = 0 then
Compare := CompareText(Item1.Caption,Item2.Caption)
else begin
ix := ColumnToSort - 1;
Compare := CompareText(Item1.SubItems[ix],Item2.SubItems[ix]);
end;end;
否则,我想不出有什么好办法,LISTVIEW应该不支持楼主那样的思想