|
ball... 님이 쓰신 글 :
: 트리에서 원하는 계층까지만 모두 활성화 시켜서 보여주는 구문을 코딩했봤습니다.
:
: void __fastcall TMainForm::ToolButton32Click(TObject *Sender)
: {
: TTreeNode *RootNode;
:
: RootNode = MainForm->MainFullTreeView->Items->GetFirstNode();
: RootNode->Expand(false);
: }
: //---------------------------------------------------------------------------
: void __fastcall TMainForm::ToolButton33Click(TObject *Sender)
: {
: TTreeNode *RootNode;
: TTreeNode *ChildNode;
:
: RootNode = MainForm->MainFullTreeView->Items->GetFirstNode();
: RootNode->Expand(false);
:
: ChildNode = RootNode->getFirstChild();
: while (ChildNode != NULL){
: ChildNode->Expand(false);
: ChildNode = ChildNode->getNextSibling();
: }
: }
: //---------------------------------------------------------------------------
:
: void __fastcall TMainForm::ToolButton34Click(TObject *Sender)
: {
: TTreeNode *RootNode;
: TTreeNode *ChildNode;
: TTreeNode *ChildNode2;
:
: RootNode = MainForm->MainFullTreeView->Items->GetFirstNode();
: RootNode->Expand(false);
:
: ChildNode = RootNode->getFirstChild();
: while (ChildNode != NULL)
: {
: ChildNode->Expand(false);
: ChildNode = ChildNode->getNextSibling();
: }
:
: ChildNode2 = ChildNode->getFirstChild();
: while (ChildNode2 != NULL)
: {
: ChildNode2->Expand(false);
: ChildNode2 = ChildNode2->getNextSibling();
: }
:
: }
: //---------------------------------------------------------------------------
:
: 1계층과 2계층을 보여주는 것은 잘되는데..... 그래서 3계층까지 보여주는 구문은 2계층의 방법을
:
: 한번 더 수행시켜서 물론 보시다시피 2계층에 다음노드를 받아온다고 받아와서 같은방식으로
:
: 컴파일 시켜봤는데 이렇게 하면 에러가 나더군여... 뭐가 잘못된건지...
:
: 그리고 한가지더여.
:
: 활성화를 시켜줄때 2계층 이상에서 활성화가 된 노드가 있으면 1계층만 보여줄고 해도 열려진노드들은
:
: 다 열려진걸로 보이거든여. 그래서 일단 활성화 시키기 전에 모든 노드를 닫은다음에 다시
:
: 위에함수로 보여주면 될꺼 같은데 모두 닫는 방법을 모르겠어여 이것도 좀 갈켜주세여.... 제발.....
:
================================================================================================
왜 While 문을 쓰는지 저로서는 잘 모르겠네요
어차피 상위 노드를 받았으면
기냥 마지막 단계에서 expand 시켜주면 될것 같은데
While 문을 사용하지 마시고 기냥 expand 만 시키면 되는거 아닌가요?
정 써야 할 이유가 있다면 마지막 노드에만 써 주어야 할것 같은데...
|