2

X 루트와 X 자식 노드가있는 VirtualStringTree가 있습니다.VirtualStringTree 여러 노드를 비우는 방법

모든 루트에는 특수 NodeData가 할당되어 있습니다. 모든 자식 노드에는 다른 NodeData가 할당되어 있습니다. 어떤 OnFreeNode인지 어떻게 알 수 있습니까? 왜냐하면 어떤 레코드가 할당되어 있는지 모른 채 데이터를 비울 수 없기 때문입니다. 어떤 아이디어?

답변

3

노드 레벨을 결정하려면 GetNodeLevel 기능을 사용하십시오.

procedure TForm1.VirtualTreeFreeNode(Sender: TBaseVirtualTree; 
    Node: PVirtualNode); 
begin 
    case VirtualTree.GetNodeLevel(Node) of 
    0: // free your root node data 
    1: // free your root's child node data 
    end; 
end; 
: 그것은 2는이 같은 것을 사용할 수 있습니다 OnFreeNode 경우에, 루트의 손자 등 그래서

입니다, 1은 루트의 자녀이며, 0은 루트 노드를 의미하는 0 기반 수준의 인덱스를 반환

+1

감사합니다. 나는 또한 nodedatasize가 고정 된 크기라는 것을 잊었다. –