相关疑难解决方法(0)

如何在TListView列上显示排序箭头?

Windows资源管理器有一个箭头,指示列表视图(在报表视图样式中)的哪个列按哪个方向排序(ASC与DESC).

是否可以TListView在Delphi中显示这样的排序指示箭头?

delphi listview delphi-xe3

6
推荐指数
1
解决办法
3097
查看次数

排序 TListView 列

我有一个包含 4 列(当然都是字符串)的 TListview,但是,我将数据存储在其中:

  • Caption: 任何字符串

  • SubItems[0]:整数,例如 '5016'

  • SubItems[1]:日期,例如 '03/22/13'

  • Subitems[2]: 任何字符串

当用户单击coolumn 标题时,我使用以下代码进行排序

我正在看这篇文章“如何根据子项 [x] 在 Tlistview 中进行排序”,但我无法弄清楚如何考虑不同的列类型。

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;
Run Code Online (Sandbox Code Playgroud)

如何考虑 Integer 和 Date 列,以便它们不会按字符串排序?

谢谢

delphi

3
推荐指数
1
解决办法
7600
查看次数

标签 统计

delphi ×2

delphi-xe3 ×1

listview ×1