我有一个有 4 列(当然都是字符串)的 TListview,但是,我将数据存储在其中:
Caption
: 任何字符串SubItems[0]
: 整数,例如'5016'
SubItems[1]
: 日期,例如'03/22/13'
Subitems[2]
: 任何字符串
当用户单击酷栏标题时,我使用以下代码进行排序
我在看这篇文章“how to sort in Tlistview based on subitem[x]”,但我不知道如何考虑不同的列类型。
procedure TfrmFind.lvwTagsColumnClick(Sender: TObject; Column: TListColumn);
begin
ColumnToSort := Column.Index;
(Sender as TCustomListView).AlphaSort;
end;
procedure TfrmFind.lvwTagsCompare(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;
如何考虑 Integer 和 Date 列,使它们不作为字符串排序?
谢谢