회사에서 Borland C++ 6.0 Enterprise 버젼으로 기존에 존재하던 프로그램을 수정해야 할 일이 생겼는데 어떻게 하다보니 기존에 없던 새로운 디자인의 컨트롤을 제작하여 사용해야 하는 것이었습니다. 그렇게 대단한 일도 아니고 고급 기능을 원하는 컨트롤도 아니라서 일단 제작을 하다보니 대충대충 해도 쉽게 되더군요. 그래서 정리해 보기로 했습니다.
1. Codegear Package 생성
일단 VCL 컴포넌트를 만들기 위해서 Package를 생성해야 합니다. 그렇지 않고 따로 하는 것은 딱히 잘 모르겠네요. 일단 이 방법으로 하여 컴포넌트 설치까지는 무난하게 진행 되니 따라 하시면 될것 같습니다.
2. Package 프로젝트를 이름 지정하여 저장
패키지를 선택하여 생성버튼을 누르면 해당 프로젝트에 대해서 VS.net 처럼 프로젝트의 이름을 바로 묻는 것이 아니기에 추가할 때는 임시로 이름을 붙이고, 저장할 때 해당 파일을 저장하게 되며, 그 파일 내부의 동일 클래스명은 자동으로 바꿔집니다. 일단 Codegear 에서는 추가하면 저장하는 기능을 먼저 생각하는 것이 좋더군요.
3. 컴포넌트 생성

이제 컴포넌트를 생성해야 합니다. New -> Other 메뉴로 들어가시면 해당 창이 표시되며 해당 창에서 보나마나 설명할 것도 없이 Component 를 선택 후 OK 버튼을 살포시 눌러줍니다.
4. 기본 베이스 컴포넌트 선택하기

컴포넌트를 제작하기 위해 기본 Base Class 로 사용할 컴포넌트를 선택하는 화면 입니다. 여기서 선택하는 클래스가 기본 클래스로 등록되며 이 클래스의 동작에 많은 영향을 받게 됩니다. 그래서 하나를 신중히 생각하고 비슷한 쪽으로 선택을 하면 되겠습니다. 전 일단 TGroupBox 를 선택해봤습니다.
5. 컴포넌트 이름 지정하기
해당 컴포넌트를 생성했으므로 이 컴포넌트가 폼에 컨트롤을 배치할 때 어떤 팔레트 위치에 어떤 이름으로 존재하게 될 것인지를 지정하게 됩니다. 이 부분에서 이상하게 지어버린다면 평생 이 컴포넌트가 존재하고 사용되는한 이상한 이름으로 되겠죠^^ 신중히 선택해 줍시다.
6. 컴포넌트 저장하기
프로젝트와 마찬 가지로 컴포넌트를 추가한 다음에도 따로 저장버튼을 눌러 파일을 저장해주어야 합니다. 저도 이게 맞는 건지 아님 다른 방법이 있는 것인지는 모르겠지만 약간 불편한 것 같긴 하군요.
7. 코드 추가하기
일단 GroupBox 자체에서 Paint 메소드가 virtual 함수로 지정되어 있었고, 수정이 가능하기에 간단하게 이를 override 하여 기존에 존재하던 그룹박스의 이미지를 제거하고 문자열을 간단히 추가하도록 해봤습니다. 그런 다음 컴파일을 하여 인스톨 하면 됩니다.
8. 컴파일 후 인스톨 하기

Build 메뉴 혹은 Make 메뉴를 선택하시고 Install 메뉴를 선택하시면 해당 패키지가 설치 됩니다. 만약 에러가 있다면 문법적 에러가 있을 것이고 해당 에러를 제거하신 뒤, 다시 설치하시면 됩니다.
9. 컴포넌트 사용하기
이제 컴포넌트를 사용해 보는 일이 남았군요. 일단 New -> Form 을 클릭하신 다음 폼이 새로 추가 되면 오른쪽 아래 Tool Palette에서 TTestGroupBox 를 찾아 선택 후 창에 배치를 해봅시다. 짜잔~ 해당 창에 우리가 만든 TTestGroupBox가 배치 되었습니다. 해당 작동 그대로 "테스트"라는 문자열도 출력이 되는군요.
이러한 방법을 통한 컴포넌트를 쉽게 생성해서 추후 원하는 GUI작업을 편하게 할 수 있을것이라 생각이됩니다^^. 편리한 방법이 계속해서 늘어나는 군요. 그럼 오늘도 즐거운 하루 되세요^^.
"Programming" 분류의 다른 글
| 한게임 자동테트리스 Ver 0.6 (22) | 2008/11/15 |
| 한게임 자동테트리스 Ver 0.2 (22) | 2008/11/03 |
| Read Sector From Floppy (0) | 2008/07/17 |
| 어제 무작정 맹글어봤던 것입니다.. (2) | 2008/07/16 |
| Com Control에서 Event 제작하기 (0) | 2008/07/10 |



댓글을 달아 주세요