|
검색 방법 ...
Tree구조 이니..
[방법1] 현재 위치(TreeNode)를 알고 있다면..
TreeView에서 다음 Node는 Next이구..
아랫쪽에는 GetFirstChild.. 식으로..
상위노드는 Parent 로 찾으면 됩니다.
[방법2] 처음부터 Node Level에 상관없이 전체를 검색하려면...
TTreeView 에 Items 에서 검색하면됩니다.
void __fastcall TForm1::Button1Click(TObject *Sender)
{
TTreeNode *tNode;
for(int i=0;i<TreeView1->Items->Count;i++)
{
tNode=TreeView1->Items[i];
if(tNode->Text="ddd")//찾았다...
{
TTreeNode *tChiNode=TreeView1->Items->AddChild(tNode,"ddd-child");
TreeView1->Items->Add(tChiNode,"ddd-child2");
}
}
}
[방법3] Tree구조를 타고 가면서 ... 노드 찾아 방법
....
TTreeNode *pNode,*cNode;
pNode=TreeView1->Items->GetFirstNode();
if(pNode->HasChildren)
FindChildNode(pNode->getFirstChild())l
...
/-------------------------------
TTreeNode * __fastcall FindChildNode(TTreeNode *pNode)
{
....
if(pNode->HasChildren)
{
FindChildNode(pNode->getFirstChild());
....
}
....
}
이런식의 재귀함수을 하나 만들어서 Child와 Next를 계속 추적하면서 검색해도 됩니다.
조금 재귀함수 만들기 짜증나니까... 그냥 방법2가 편하구요
도움이 될지 모르겠네요...
이범상 님이 쓰신 글 :
: 폴더와 파일의 관계를 트리뷰로 보일려고합니다.
:
: 그런데 현재 생성된 트리에서 특정 파일이름을 검색 하려면 방법이 있습니까?
:
: ========================= 트리뷰구조 =========================
: A001
: -B001
: A002
: -B002
: -B003
: -C001
: -B004
: -C002
: -C003
: -C004
: -C005
: =============================================================
:
: 추가할 트리
: D0001
: -E0001
: -E0002
:
: 제가 구성할려는 트리는 저런식으로 되있습니다.
: 저기서 저는 D001을 C005밑에 두려고 합니다.
: 일일히 하나씩 이름 찾아서 대조해보고 아니면 다음으로 넘어가서 찾는 방법말고
: 모든 아이템중에서 특정이름을 검색해서 그 밑에 다른 트리 노드들을 추가하려는 방법을 원합니다.
:
: 아니면 트리형식으로 나오면서 위 같은 방법을 할수 있는 컴포넌트는 없습니까???
:
: 부탁드립니다.
: 고수님들 알려주세요 ㅠㅠ
: 감사합니다.
|