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
[39917] 도킹한 폼이 패널만큼밖에 안보이는데..
독립군 [191931] 1077 읽음    2005-04-22 16:51
아래는 도킹을 참조하라고 넣은거고요..
부모폼은 지도이고..도킹되는 폼은 지도 컨드롤입니다.
제가 하려는것은 도킹을 하면 패널크기밖에 도킹된 폼이 안보이잖아요..
아무폼도 안 되었을때는 부모폼이(지도)  전체를 차지하고..
도킹되면 부모폼은 좀 작아지고..도킹되는 폼(지도 컨트롤)은 다 보이게 하려는데..
말을 좀 어렵게 섰는데..이해되죠..제가 글 솜씨가 없서서..^^!보와 주세용..

폼하나에 패널을 두개 두고, 실행시 각 패널에 2개의 폼을 Docking 시키는 예입니다.
1. New Application을 하시구요. 기본으로 저장을 하시길.(Unit.cpp)
2. Form1 위에 Panel1, Panel2를 놓구요.
   Panel1과 Panel2의 property 중 DockSite를 'true'로 합니다.
3. 이제 New Form을 두번하셔서, Form2, Form3를 생성합니다.
4. Form2, Form3의 property 중 DragKind = dkDrag, DragMode = dmManual 로 각각
   설정합니다. *** 이것으로는 안되었고요  (Docking을 할 Form의 DragKind = dkDock로 설정하시고 DragMode = dmAutomatic ) 이것으로 하니 되었습니다. 참조하세요
4. 마지막으로 Unit1.cpp 에 아래와 같이 코딩합니다.
#include "Unit1.h"
#include "Unit2.h"    // 추가합니다.
#include "Unit3.h"    // 추가합니다. 
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
   : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormShow(TObject *Sender)
{
   Form2->Show();
   Form3->Show();
   Form2->ManualDock(Form1->Panel1, NULL, alClient);
   Form3->ManualDock(Form1->Panel2, NULL, alClient);
}
//---------------------------------------------------------------------------
대충 감이 오시져? 동적생성을 하셔도 되구 활용하기에 따라서 여러가지로 쓰일수
있습니다.
TControl::ManualDock
(원형) bool __fastcall ManualDock(TWinControl* NewDockSite, TControl* DropControl, TAlign ControlSide);
(상세) 수동적으로 dock 하기위해 ManualDock를 사용한다. ManualDock는 현재 도킹되어
있는 dock site로부터 control을 분리하고, 다른 dock site에 control을 도킹한다.
NewDockSite는 control의 새 dock site이다.
DropControl은 drop되는 새 dock site내의 컨트롤이다. 예를 들면 Page Control에 Docking
을 하면, DropControl은 Tab Sheet일 것이다. (Form이라도 Page Control에 Docking되면 Tab
Sheet가 되고 만다)
ControlSide는 dock될 control의 DropControl 또는 (DropControl이 NULL이라면)NewDockSite의
side를 결정한다. 이러한 값은 dock site의 GetDockEdge 메쏘드를 호출함으로써 알 수 있다.
String => Int
StrToInt(String)

+ -

관련 글 리스트
39917 도킹한 폼이 패널만큼밖에 안보이는데.. 독립군 1077 2005/04/22
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.