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
[43865] Re:Re:[안돼요~]미쵸~ 미쵸~ 도와주세염....
main1114 [] 1944 읽음    2006-02-28 15:27
이렇게 빨리 답변을 달아 주셔서 감사합니다..
역쉬나~ 저두 될까 하고 이것 저것 해봤는데, 안돼서 질문을 올린거였는데,....
ㅠㅠ 우울해요~ 앙앙~
혹시 꽁수(resize시..tabset을 강제로 position을 맞춰주는건 해봤는데, 부적절함...)라도 없을까요~??
사정에 의해서... bcb 6을 쓸 수 밖에 없는 상황이라~

실제 BDS2006에서 OnAlignPosition 이벤트 사용하여 해보니~
여기서도 강제로 포지션만 맞춰 줄수 있는 방법으로 해야 되는 거네요~
이렇게 하면, Child 폼을 열었을 경우 Child폼을 Main 밖에 영역으로 가게 되면 메인폼의 Horizontal 스크롤이
tabset에 가려져 안보입니다...

tabset의 align을 bottom으로 할 경우는 MDI가 VIEW영역을 TabSet을 제외 하는데, 강제로 영역을 지정해주면 TabSet
영역까지 포함하는것 같더군요...

OnAlignPosition 함수안의 코딩은  아래와 같이 하였습니다..
                TRect    rect    = this->ClientRect;
    if( Control == Panel1 )
    {
        NewTop            = rect.top;
        NewLeft            = rect.Left;
        NewHeight        = rect.Height();
    }
    else
    if( Control == DockTabSet1 )
    {
        NewTop            = rect.Bottom - DockTabSet1->Height;
        NewLeft            = rect.Left + Panel1->Width;
        NewWidth                        = rect.Width() - Panel1->Width;
    }

이렇게 하는게 맞는건가요~?? 그리구 AlignInsertBefore 이벤트 함수는 어케 사용하는건지 모르겠네요~
갈쳐주시면 감솨~


==================================================================================================

박지훈.임프 님이 쓰신 글 :
: C++빌더6에서는 불가능합니다.
: Align 자체가 같은 레벨에서는 무조건 아래/위가 왼쪽/오른쪽보다 우선하게 되어있습니다.
: 그런데 님께서 원하시는 디자인을 보니, 아래쪽인 스테이터스바가 최우선, 왼쪽인 패널이 2순위, 다시 아래쪽인 탭셋이
: 3순위이군요. 6 버전에서는 이렇게 순위를 바꿔가면서 Align을 줄 수 있는 방법이 없습니다.
:
: 하지만 C++빌더2006에서는 가능합니다.
: 패널과 탭셋의 Align을 alCustom으로 설정하고 Parent 컨트롤(이 경우에는 폼)의 OnAlignPosition 이벤트나
: AlignInsertBefore 이벤트를 이용하면 됩니다.
:
: 그럼...
:

==================================================================================================

:
: main1114 님이 쓰신 글 :
: : 제가 MDI 환경에서 프로그램을 만들려구 하는데요~ ( 개발툴은 bcb 6.0 )
: :
: : 엑셀처럼.. 좌측에는 Workspace가 있구 우측에는 worksheet를 넣어서 sheet 하나당 MDI Child 폼을
: :
: : 열려구 하거덩요..
: :
: : 근데, 문제는 align 문제가 있어서 이렇게 질문을 올립니다..
: :
: : 메인폼에 Pannel과 Tabset을 올려놓고,
: : Pannel의 Align을 Left로 하고,,, TabSet을 bottom으로 했더니, Tabset이 bottom 영역을 다 차지 하더군요..
: : 첨부 파일의 위쪽 그림처럼....
: :
: : 근데, 저는 첨부 파일의 아래쪽 그림처럼 하고 싶거덩요~
: :
: : 일단, 또다른 panel을 올려놓고, align을 client로 하고 이 panel에 Tabset를 넣어 bottom으로 하면 형태는
: : 나오지만, MDI Child 창이 보이지 않더군요,...
: : 그래서 MDI Child창의 Parent를 위의 panel로 하면 창으로 보이지만 active창의 표시( 폼의 Title부분)이 active
: : 형태로 나타나지 않으며, 가장 큰 문제는 child창을 메인폼의 밖으로 나갔을 때, 스크롤 처리와 MDI 기본 기능인 Horizontal, vertical 정렬을 되지 않습니다..
: :
: :
: : 혹시, 이런 거 경험 해보신분 노하우좀 갈쳐 주세용...

+ -

관련 글 리스트
43859 미쵸~ 미쵸~ 도와주세염.... main1114 1358 2006/02/28
43861     Re:미쵸~ 미쵸~ 도와주세염.... 박지훈.임프 1603 2006/02/28
43865         Re:Re:[안돼요~]미쵸~ 미쵸~ 도와주세염.... main1114 1944 2006/02/28
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.