이 예제는 본인이 개인적 필요에 의해 현재 만들고 있는 어플리케이션 프레임웍크 라이브러리 테스트 프라젝트를 패키지 사용 방식으로 바꾼 것입니다. 주요 라이브러리 소스를 포함하지 않아서 컴파일은 안되지만, 패키지의 정적 동적 사용 방법을 이해하는 데는 별로 어려움이 없을 것입니다. 소스 자체는 몇개 안되며 매우 간단합니다.
이 예제에는 다음 세개의 프라젝트가 포함되어 있습니다.
project1.exe : 메인 프라젝트, 메인폼과 로그인 폼이 들어 있음 commonpkg.dpk : 공용 라이브러리 패키지, 공용 유닛 집합 subforms.dpk : 하위 폼들을 보관하는 패키지. fmSub1, fmSub2, fmSub3
commonpkg 패키지는 project1.exe와 subforms 패키지 양쪽에서 함께 사용하는 공용 유닛들을 패키지화한 것입니다. 따라서 project1.exe와 subforms 패키지는 commonpkg를 각각 정적 패키지로 사용합니다. subforms 패키지는 project1.exe가 실행시 동적으로 로딩하는 동적 방식 패키지입니다.
project1.exe는 subform2 패키지를 동적 패키지 방식으로 로딩합니다. project1.exe의 프라젝트 소스를 보면 패키지 동적 로딩하는 코드를 볼 수 있습니다.
commonpkg 패키지는 정적 패키지(컴파일타임)이므로, project1.exe를 실행할 때 같은 폴더에 반드시 존재해야 하지만, subforms 패키지는 실행 파일 폴더에 존재하지 않아도 됩니다. project1.exe를 실행할 때 subforms.bpl이 있을때와 없을 때 메인 폼의 메인메뉴가 달라집니다. 이는 project1.exe를 실행할 때 subforms.bpl이 있을 때 실행했을 때와, 이 파일을 지웠을 때 실행해보면 알 수 있습니다.
이처럼 패키지는 실행시 프로그램 기능 추가 삭제로 사용할 수도 있습니다. 이는 매우 강력한 기능이며, 대규모 업무용 프로그램 작성히 어플리케이션 파티션 방법으로 매우 유용합니다.