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
[49863] Re:프레임을 사용했습니다... 근데 문제는...
장성호 [nasilso] 1190 읽음    2007-07-10 18:07
1. TreeView의 OnChange이벤트를 이용해야겠죠

2. 선택된 Item과 Frame과 연관성이 있어야겠죠
      선택된 Item과 Frame과 연관성만 정해져있다면
      Frame을 change하는것은 문제가 없겠죠

3. 그럼 TreeView의 Item과 Frame과 어떻게 연관성을 지어주느냐?

      3.1 방법1
              * ImageIndex를 이용하는 방법
                   이미지인덱스에 Frame의 정보를 넣어두세요
             
                   Frame을 배열에 넣어두고
                  배열인덱스를 넣던가요
                 
                 TFrame  *frame[3];
                  frame[0]=MyFrame1;frame[1]=MyFrame2;
                  frame[2]=MyFrame3;
                 
              이미지 인덱스 대신 StatusIndex를 이용해도 됩니다.
             
              MyFrame1->Tag=1;
              MyFrame2->Tag=2;
              MyFrame2->Tag=3;
    
              그밖에 여러가지 방법....


       3.2 방법2
             TTreeNode 의 Data에 Frame의 포인터를 넣어두세요
             아래 샘플처럼 ( 샘플은 Frame대신 Panel을 사용햇습니다.)
                                                    

void __fastcall TForm1::FormCreate(TObject *Sender)
{
    TTreeNode *Node;
    Node=TreeView1->Items->Add(NULL,"Panel1");
    Node->Data=(void *)Panel1;
    Node=TreeView1->Items->Add(NULL,"Panel2");
    Node->Data=(void *)Panel2;
    Node=TreeView1->Items->Add(NULL,"Panel3");
    Node->Data=(void *)Panel3;
    Node=TreeView1->Items->Add(NULL,"Panel4");
    Node->Data=(void *)Panel4;


}
//---------------------------------------------------------------------------

void __fastcall TForm1::TreeView1Change(TObject *Sender, TTreeNode *Node)
{
    if(TreeView1->Selected)
    {
        TPanel *pn=(TPanel *)TreeView1->Selected->Data;
        pn->Visible=true;
        pn->Align=alClient;
        pn->BringToFront();
    }
}
//---------------------------------------------------------------------------


그럼...



정유수 님이 쓰신 글 :
: 말씀하신대로 프레임을 사용했습니다.
: 이런식의 장면전환에서는 프레임사용이 거의 정설이니 말이지요.
:
: 그런데 문제는
:
: 왼쪽의 트리뷰가 프레임을 바꿔주는 길잡이 역할을 해야 하는데..
:
: 각각의 트리뷰 아이템에 click 이벤트를 걸어주어 해당 아이템에 연결되어 있는 프레임만 Visible = False 나
:
: Visible = True 걸어주려면 방법이 없냐는 질문이었습니다.
:
:
:
: smleelms 님이 쓰신 글 :
: : 여러가지 방법이 있을 수 있겠지만 Frame을 사용하시면 됩니다.
: : 아래 링크의 글을 참고해 보시기 바랍니다.
: :
: : http://cbuilder.borlandforum.com/impboard/impboard.dll?action=read&db=bcb_qna&no=45306
: :
: : 정유수 님이 쓰신 글 :
: : : c++초보입니다.
: : :
: : : 왼쪽에 프레임을 하나 만들고 그 안에
: : :
: : : 트리뷰를 심어 놓았습니다.
: : :
: : : 트리뷰에서 각 아이템을 클릭시
: : :
: : : 오른쪽의 프레임에 장면전환(?)을 하도록 하고 싶은데요..
: : :
: : : 이런 경우 어떻게 해야 하는지요?
: : :
: : :
: : :
: : : 그림 파일 첨부합니다.

+ -

관련 글 리스트
49856 트리아이템 클릭시 프레임의 장면전환(?) 정유수 977 2007/07/10
49859     Re:트리아이템 클릭시 프레임의 장면전환(?) smleelms 962 2007/07/10
49860         프레임을 사용했습니다... 근데 문제는... 정유수 1010 2007/07/10
49863             Re:프레임을 사용했습니다... 근데 문제는... 장성호 1190 2007/07/10
49864                 감사합니다. 정유수 908 2007/07/10
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.