首页 > 解决方案 > 动态更改 TVirtualTreeView 中的排序顺序

问题描述

我希望能够在 TVirtualTreeView 中打开和关闭排序。目前我正在使用 OnCompareNode 进行排序,按照标准做法进行实际排序。这是我在 OnCompareNode 下的代码。

procedure TfmCodeExplorerVT.vtCodeExplrCompareNodes(Sender: TBaseVirtualTree;
  Node1, Node2: PVirtualNode; Column: TColumnIndex; var Result: Integer);
Var CodeData0: PItemRecord;
    CodeData1: PItemRecord;
begin
    if Sender.GetNodeLevel(Node1) = 0 then exit;
    CodeData0 := vtCodeExplr.GetNodeData(Node1);
    CodeData1 := vtCodeExplr.GetNodeData(Node2);
    if Sorted then
      Result := CompareText(CodeData0.Caption, CodeData1.Caption);
end;

我有一个按钮,我可以在排序和未排序之间切换。

如何让 VirtualTreeView 中的任何扩展节点动态更新?到目前为止,我发现的唯一方法是折叠打开的节点并再次展开它。这是正确的方法吗?

标签: delphivirtualtreeview

解决方案


推荐阅读