^^;; 제 나름대로 질문의 의미를 파악하고 구현을 해봤는데요.
확인해보세요.. 이게 맞길 빌겠습니다.
첨부한 실행파일도 같이 확인해보세요.
void __fastcall TForm1::FormCreate(TObject *Sender)
{
TTreeNode *pRootNode = NULL, *pChildNode = NULL;
TreeView1->Items->Clear();
pRootNode = TreeView1->Items->Add(NULL, "ROOT");
pRootNode->ImageIndex = 3;
pChildNode = TreeView1->Items->AddChild(pRootNode, "Image");
pChildNode->ImageIndex = 0;
pChildNode = TreeView1->Items->AddChild(pRootNode, "Movie");
pChildNode->ImageIndex = 1;
pRootNode->Expand(true);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::TreeView1Click(TObject *Sender)
{
TPoint pnt;
GetCursorPos(&pnt);
// 전체화면에서의 마우스포인터 위치를 트리뷰내부에서의 상대적인 위치로 변환
pnt = TreeView1->ScreenToClient(pnt);
// 현재 마우스포인터 위치에 있는 노드를 찾는다.
TTreeNode* pSelNode = TreeView1->GetNodeAt(pnt.x, pnt.y);
if(pSelNode == NULL) {
Label1->Caption = "No Node Clicked.";
return;
}
switch(pSelNode->ImageIndex) {
case 3: // Root Node
Label1->Caption = "Root Node Clicked.";
break;
case 0: // Image Node
Label1->Caption = "Image Node Clicked.";
Panel1->Visible = true;
break;
case 1: // Movie Node
Label1->Caption = "Movie Node Clicked.";
Panel1->Visible = false;
break;
}
}
//---------------------------------------------------------------------------
입문. 님이 쓰신 글 :
: 도저히 못찾겠네요.
: 그럼..
: void __fastcall TfrmSchedule::TreeView1Click(TObject *Sender)
:
: 이곳에서 OpenDialog->Filter->FilterIndex = 0
: OpenDialog->Filter->FilterIndex = 1
: 0은 이미지로 1은 무비로 클릭 시.
: 0은 오른쪽 판넬이 true
: 1은 오른쪽 판넬이 false
:
: 이렇게 가능한지요. (__)
:
:
: skjoon 님이 쓰신 글 :
: : 단지 Panel의 Visible 속성을 변경할 때 에러가 생기는 경우에 대해서는 상황 판단이 힘들구요.
: : 일단 TreeView1->Selected가 NULL일 경우가 의심되네요.
: :
: : 다음과 같이 myNode를 검사해 주시면 어떨까요?
: :
: :
: : void __fastcall TfrmSchedule::TreeView1Click(TObject *Sender)
: : {
: : AnsiString FileName;
: :
: :
: : if(TreeView1->Items->Count <= 0 )return;
: :
: : Image->Show();
: :
: : TTreeNode *myNode = TreeView1->Selected;
: : if(myNode == NULL) return; // 여기 추가
: : if(myNode->Level == 1)
: : {
: : Effect = (TdtEffect*)TreeView1->Selected->Data;
: : FileName = Effect->Path;
: : FileName = FileName + Effect->FileName;
: : Image->Picture->LoadFromFile(FileName);
: : Panel5->Visible = true;
: : }else
: : {
: : Panel5->Visible = false;
: : }
: : }
: : |