Динамически изменять порядок сортировки в TVirtualTreeView - PullRequest
1 голос
/ 17 июня 2020

Я хочу иметь возможность включать и отключать сортировку в 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 обновляться динамически? Единственный способ, который я нашел до сих пор, - это свернуть открытый узел и снова развернуть его. Это правильный путь?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...