VirtualStringTree 에서 각 Node 의 값을 순차적으로 읽은 후
원하는 값을 찾아서 해당 노드를 선택하게 만들고 싶습니다.
즉, 해당 노드가 선택된것 처럼 파랗게 변하고 해당 노드의 위치로 자동
스크롤이 되어 해다아 노드를 클릭한 이벤트를 발생시키려고 하는데
선택하게끔 만드는 Method 를 못 찾겠습니다.
Node := treeComp.GetFirst;
WHILE Assigned(Node) DO BEGIN
cComp_Name := treeComp.Text[Node,0];
IF POS(cString,cComp_Name) > 0 THEN BEGIN
treeComp.Selected[Node]; <-- 선택이 되지 않고 아무런 변화가 없습니다. 스크롤도 안 움직입니다.
treeCompClick(Sender);
BREAK;
END;
Node := treeComp.GetNext(Node);
END;
해결 방법좀 찾아주세요..
고맙습니다.
선택을 바꾸실려면 Node.States에 vsSelected플래그를 추가하세요.
Node.States := Node.States + [vsSelected]; // 선택하기
Node.States := Node.States - [vsSelected]; // 선택해제하기
상태를 바꾼후에 RepaintNode메소드로 다시 그려주도록 해야 합니다.
treeComp.RepaintNode(Node);