C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 강좌/문서
C++Builder Programming Tutorial&Docments
[137] TApLabel 만들기 (3) Run Time 과 Design Time 의 분리
이정구 [appleii] 11743 읽음    2007-07-26 18:58
이번에는 Package 제작법에 대해서 알아봅시다.
Third Party Component 들을 보면 각 버전마다 두 개의 bpk 를 제공하는 것을 알 수 있습니다.
이것들은 도대체 뭘까요? 그리고 두 개의 bpk 가 설치 순서가 있는 것을 알 수 있습니다.

왜 이런 방식을 택하는 것일까요.

C++Builder 는 두가지의 개발방식을 지원하고 있습니다. Design Time 과 Run Time 입니다.
Design Time 의 개발방식은 Form 위에 Component 를 올려놓고 Object Inspector 에서 직접
조작하면서 직관적으로 개발하는 방식입니다. Run Time 은 기존의 방식과 같이 직접 코드를
입력하는 방식입니다. Design Time 에서는 Property Editor, Component Editor 라는 도구들을
사용할 수 있습니다. 하지만 이러한 도구들은 프로그램이 실행 될 때, 즉, Run Time 에서는
필요가 없습니다. 따라서 Run Time 에서는 이 코드들이 포함되지 않도록 Design Time 용 코드를
분리할 필요가 있습니다.

즉, bpk 를 두개로 만듭니다.

(1) Run Time 용
컴포넌트의 본체가 되는 코드, 컴포넌트를 포함하는 프로그램은 Run Time 용 코드만 포함

(2) Design Time 용
 - (1) 을 컴파일한 결과물인 .bpi 를 requires 에 포함시킵니다.
 - Design Time 에 필요한 Component Editor , Property Editor, (1) 을 contains 에 포함

여기서 주의할점이 한가지 있습니다!
Design Time 용 package 는 Run Time 을 compile 한 결과물인 bpi 가 필요합니다. 따라서
Run Time 을 먼저 Compile 한 후 (Install 이 아닙니다!) 그 뒤에 Design Time 을 Compile, Install
해야 합니다.


다음 그림을 비교해서 보시고 Run Time , Design Time 용 package 에 필요한 것이 무엇인지
옵션이 어떻게 구성되어 있는지 생각해 보세요.


[RunTime 용 Package 구성]



[DesignTime 용 Package 구성]


옵션에 Designtime only, Runtime only, Designtime and runtime 세가지가 있는 것을 알 수 있습니다.
세번째 옵션인 Designtime and runtime 은 Designtime 과 Runtime 용 코드를 모두 포함하는
것입니다. 이렇게 하면 설치가 간편해지는 장점이 있지만 Designtime 용 코드가 클 경우
실행파일의 크기가 커집니다. 그러나 Designtime 에서 별도의 기능을 제공하지 않는다면 이 옵션을
선택하는 것도 좋습니다.

Designtime 은 Runtime 코드를 포함합니다.

ApAbout.cpp
ApLabelCPE.cpp
ApLabel_DSGN_bcb6.cpp
ApLabel_reg.cpp
ApLabelResource.res
ApLabelCursor.res
ApLabel_DSGN_bcb6.res

ApLabel.cpp


Apple Label Component 제작 강좌는 이것으로 마칩니다. 애초의 목적은 컴포넌트를 제작해
봄으로써 컴포넌트 설치시에 발생하는 문제점을 스스로 해결할 수 있도록 하는것이었습니다.
Builder 의 장점은 남이 만든 코드를 간단한 절차를 통해서 내 프로그램에 추가할 수 있다는
것입니다. 그러나 설치과정에서 발생하는 문제점이 적지 않은데다가 제작자가 예상하지 못한
버그가 있을 경우 스스로 해결해야 합니다. 이 강좌를 통해서 이러한 문제를 해결하는데 도움이
되었으면 좋겠습니다.
김태선 [jsdkts]   2007-07-29 15:58 X
빌더 강좌중 제알 잘된 것 중에 하나이군요.

다음 강좌 기대하고 있습니다.

^^;
이정구 [appleii]   2007-08-01 17:52 X
잘된 강좌라 하시니 기분이 좋네요. 다음에는 Graphics32 를 사용한 예제를 생각중입니다. 다른분들도 같이 참여했으면 좋겠네요.
김태선 [cppbuilder]   2007-08-02 19:23 X
Graphics32 강좌는 정말 멋진 주제군요.

기대 많이 됩니다. ^^ b

+ -

관련 글 리스트
137 TApLabel 만들기 (3) Run Time 과 Design Time 의 분리 이정구 11743 2007/07/26
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.