C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[45791] Re:TreeView에서 특정 노드 검색 방법이 있습니까???
장성호 [nasilso] 3785 읽음    2006-07-22 12:04
검색 방법 ...
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밑에 두려고 합니다.
: 일일히 하나씩 이름 찾아서 대조해보고 아니면 다음으로 넘어가서 찾는 방법말고
: 모든 아이템중에서 특정이름을 검색해서 그 밑에 다른 트리 노드들을 추가하려는 방법을 원합니다.
:
: 아니면 트리형식으로 나오면서 위 같은 방법을 할수 있는 컴포넌트는 없습니까???
:
: 부탁드립니다.
: 고수님들 알려주세요 ㅠㅠ
: 감사합니다.

+ -

관련 글 리스트
45786 TreeView에서 특정 노드 검색 방법이 있습니까??? 이범상 1856 2006/07/21
45791     Re:TreeView에서 특정 노드 검색 방법이 있습니까??? 장성호 3785 2006/07/22
45807         답변 감사합니다. 정확한 답변주셨습니다. ^^(냉무) 이범상 1136 2006/07/24
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.