Jump to content
과거의 기술자료(읽기 전용): https://tech.devgear.co.kr ×
과거의 기술자료(읽기 전용): https://tech.devgear.co.kr

BPL을 이용하여 MDI Form 프로젝트를 만들고 Child Form에서 FireDAC 단일 커넥션 사용하기.


Recommended Posts

MDI Form 프로젝트를 BPL 패키지 방식으로 만들면 기존 DLL 방식 보다 간편하고 안정적인 MDI 프로젝트 생성이 가능해 집니다.

각 Child 폼들은 각각의 패키지 프로젝트로 구성 되어 빌드시 .bpl 타입의 독립 모듈이 생성 됩니다.

따라서 각각의 Form들을 별도의 프로젝트로 구축 할 수 있으므로 Form이 많은  대형 프로젝트에서 분업화 된 작업이 가능하며

메인 Form의 .EXE 사이즈도 적은 용량으로 유지 보수가 좀 더 편리 합니다.

물론 BPL은 델파이 내부에서만 사용되며 그래서 더욱 연동에 유리 합니다.

또한 각각의 Child Form들은 Main 폼에서 생성한 FireDAC 커넥션을 사용 할 수 있어 단일 커넥션으로 데이터베이스 접속이 가능 합니다.

 

데모 영상은 1부와 2부로 나뉘어져 있고 영상을 먼저 시청하고 아래 요약된 내용을 보시면 쉽게 이해 할 수 있습니다.

1부는 BPL MDI 프로젝트를 구축 하는 방법이고

2부는 작성된 MDI Form 에서 단일 커넥션으로 각각의 Child Form들이 데이터베이스에 접속 하는 방법을 소개 합니다.

샘플프로젝트는 즉시 실행 해 볼 수 있도록 편의상 SQLite를 사용 하였으므로 실무에서는 사용 가능한 RDB를 이용하면 됩니다.

 

Part 1. BPL 로 MDI Project 만들기

1. 프로젝트 폴더 분류
- Output 폴더 생성 : Exe 및 BPL 위치로 사용

2. Main Form 프로젝트 생성
 - FormStyle : MDIForm 설정
 - 프로젝트 옵션 > Output Directory 지정

2. Child Form 프로젝트 생성
- 프로젝트 그룹에서 Add New Project > Package 선택
- bpl 프로젝트 Contains 우클릭 > Add New > VCL Form 으로 새폼 추가
- FormStyle : MDIChild 설정
- 프로젝트 옵션 > Package Output 폴더 지정
- 패키지 프로젝드 빌드 : 패키지 등록창에서 OK 선택.

3. 같은 방법으로 Child Form 프로젝트 1개 더 생성

4. Main Form 프로젝트
- Project Option > Packages > RunTime Packages > Link with RunTime Packages : TRUE 설정
- 프로젝트 정상 빌드 확인.

5. Main Form 프로젝트 화면 및 소스 작업 (상세내용 샘플 프로젝트 참조)
- TMainMenu 로 Child 창을 열기 위한 풀다운 메뉴 생성
- 각 메뉴 클릭시 Child Form 호출

6. Child Form 프로젝트 화면 및 소스 작업 (상세내용 샘플 프로젝트 참조)
- Initialization  와 finalization  추가
- Form OnClose 이벤트에 Form 메모리 제거

7. 실행
- Child Form 프로젝트 및 Main Form 프로젝트 각각 빌드
- 실행은 Main Form 프로젝트 (.Exe)
- Child Form 프로젝트만 변경시 해당 bpl 프로젝트만 개별 빌드 하면 됨, 단 Main Form Exe는 재실행 

Part 2. 각 Child Form에서 단일 Connection 으로 FIreDAC 사용하기

1. Main Form 프로젝트
- TFDConnection 으로 Database Connetion 설정

2. Child Form 프로젝트
- Main Form 프로젝트에서 설정한 TFDConnection 커넥션 지정
Ex) TFDQuery 의 Connection을 "MForm.FDConnection1: 으로 지정 (상세내용 샘플 프로젝트 참조)

 

Part 1 데모영상

Part2 데모영상

 

프로젝트 샘플 소스 다운로드

MDI_Sample.zip

이 댓글 링크
다른 사이트에 공유하기

  • 1 month later...

위의 글만 보시고 혹시 폼을 패키지로 작성시 MDI Child 폼에서만 사용 한다고 생각 하시는 분들이 혹시 계실수 있어서 SDI(Single Document Interface)의 폼을 패키지로 작성하는 방법을 설명한 링크를 공유합니다. 

https://edn.embarcadero.com/article/27178

그리고 수정이 빈번이 일어나는 화면이나 공통 모듈 개발시 패키지로 개발할 것인지 DLL로 개발 할 것인지 고민하고 질문하시는 분들이 종종 있습니다.

 아래 링크는 패키지와 DLL 방식의 장단점을 정리해본것 입니다. 둘 중 어느 방식으로 개발하는가는 업무 상황에 따라 그때 그때 달라집니다. 

https://tech.devgear.co.kr/index.php?mid=delphi_news&search_keyword=dll&search_target=title_content&page=2&document_srl=441181

                                                     

 

 

 

 

 

 

 

이 댓글 링크
다른 사이트에 공유하기

이 토의에 참여하세요

지금 바로 의견을 남길 수 있습니다. 그리고 나서 가입해도 됩니다. 이미 회원이라면, 지금 로그인하고 본인 계정으로 의견을 남기세요.

Guest
이 토픽(기고/질문)에 답하기

×   서식있는 텍스트로 붙여넣기.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   이전에 작성한 콘텐츠가 복원되었습니다..   편집창 비우기

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

중요한 정보

이용약관 개인정보보호정책 이용규칙 이 사이트가 더 잘 작동하기 위해 방문자의 컴퓨터에 쿠키가 배치됩니다. 쿠키 설정 변경에서 원하는 설정을 할 수 있습니다. 변경하지 않으면 쿠키를 허용하는 것으로 이해합니다.