저작권에 대한 공지
이 문서에 포함된 모든 글과 소스 코드는 작자인 저 김성동의 지적 재산이지만 무단으로 배포하거나 책이나 강의 교재등을 위한 복제 등 저작권을 저해하는 행위를 제외하고는 자유롭게 사용할 수 있습니다.
또한 이 페이지에 대한 링크는 자유롭게 할 수 있으나 전문을 전제하는 일은 허용하지 않습니다.


3.5. 콤포넌트 도움말

델파이에서 콤포넌트를 선택하거나 오브젝트 인스펙터에서 프로퍼티나 이벤트를 선택하고 F1 키를 누르면 델파이의 문맥 감지 도움말이 동작한다. 즉 선택된 콤포넌트가 선택되어 있으면 그 콤포넌트에 대한 도움말 토픽을 보여주며 프로퍼티나 이벤트가 선택되어 있다면 선택된 프로퍼티나 이벤트에 대한 도움말 토픽을 보여준다. 만약 독자가 상용으로 판매할 콤포넌트를 만든다면 아마도 콤포넌트에 대한 상세한 설명을 담고 있는 도움말을 제공해야 할것이며 또한 독립적인 도움말이 아니라 델파이의 도움말 시스템과 유기적으로 통합되도록 해야 할 것이다. 이번 절에서는 직접 만든 도움말 파일을 델파이 전체 도움말 시스템과 통합하는 방법과 새롭게 개발한 콤포넌트에 대해 문맥 감지 도움말을 만드는 요령을 알아 보겠다.
3.5.1. 도움말 만들기
일반적으로 윈도 도움말은 RTF(Rich Text Format) 형식을 지원하면서 각주를 입력할 수 있는 워드프로세서(마이크로소프트 워드 등)나 전용 도움말 저작 도구(HelpWord, RoboHelp, ForeHelp, HelpScribble 등)을 이용해서 제작한다. 하지만 전용 도움말 저작 도구의 경우에는 보이지 않는 키워드를 지정하는 A 각주를 지원하지 않는 것도 있기 때문에 신중하게 선택해야 한다.
도움말 파일은 여러 개의 토픽으로 구성되며 각 토픽은 각주(Footnote)를 이용해서 토픽에 대한 정보(아래 표 참조)를 도움말 시스템에 제공한다. 다른 토픽으로의 이동이나 팝업 토픽을 보여 줄때는 문자열의 글꼴 형식과 숨겨진 문자열을 이용해서 작업한다. 다른 토픽으로의 이동은 이중 밑줄로 링크할 문자열의 글꼴 형식을 지정해주고 팝업 토픽은 단일 밑줄을 사용한다. 숨겨진 문자열은 이동할 토픽의 ID를 지정하는데 사용한다.

표 3-6 도움말에서 사용하는 각주
각주 기호의미
# 콘텍스트 문자열로서 전체 도움말 파일에서 유일한 이름을 가져야 한다. 토픽 ID라고 한다.
$ 토픽의 제목으로서 찾은 항목 창이나 히스토리 창에 나타나는 이름이다.
K색인 페이지에 나타나는 검색용 키워드를 지정한다. 여러 개의 키워드를 지정할 때는 ; 문자로 구분해서 입력한다.
+ 보기 순서를 지정하는데 도움말 창의 도구 모음에서 << 버튼과 >> 버튼을 이용해서 순차적으로 도움말을 볼 때 나타날 순서를 지정한다.
A델파이 도움말에서 중요한 각주로서 색인 페이지에 보이지 않는 키워드를 지정한다. 이 각주를 입력하는 것은 나중에 다시 자세하게 설명하겠다.


델파이의 도움말 시스템과 잘 통합되는 콤포넌트 도움말을 만들려면 가급적 아래와 같은 규칙을 지켜가면서 제작하는 것이 바람직하다. 그림을 보면서 읽어 보면 좀 더 쉽게 이해할 것이다.
첫번째로 콤포넌트에 대한 개괄적인 설명을 담은 토픽을 만들어 주어야 한다. 이 토픽은 콤포넌트가 선언되어 있는 유닛과 콤포넌트에 대한 개요 그리고 간단한 사용법등을 포함하고 있어야 하며 클래스 계층 구조, 프로퍼티/이벤트/메소드 리스트에 대한 링크를 가지고 있어야 한다. 그리고 반드시 A 각주를 가지고 있어야 한다.

그림 3-12 콤포넌트 메인 토픽




그림 3-13 콤포넌트의 계층 구조도


두번째로 토픽 사이의 쉽고 편한 이동을 위해 클래스의 계층 구조와 콤포넌트가 가지고 있는 모든 프로퍼티,이벤트,메소드 리스트를 담고 있는 토픽을 제공해야 한다. 그리고 이들 토픽은 다른 도움말 창에 보여 주어야 한다.

그림 3-14 프로퍼티 리스트 토픽


세번째로 콤포넌트가 제공하는 모든 프로퍼티, 이벤트, 메소드에 대해 자세히 설명하는 토픽을 만들어 주어야 한다. 이들 토픽에서는 각 아이템의 자세한 사용법과 이들이 어떻게 선언되어 있는지를 자세하게 설명해야 하며 반드시 A 각주를 가지고 있어야 한다. 그리고 프로퍼티의 형이 다른 클래스이거나 열거형이나 집합형인 경우 형에 대해 설명하는 토픽도 만들어 주어야 한다.

그림 3-15 프로퍼티 설명 토픽


마지막으로 토픽을 만들다 보면 종종 델파이에서 이미 제공하고 있는 토픽으로 링크할 일이 생기는데 이럴때는 Alinks 매크로를 사용한다. 예를 들어 TLabel에 대한 콤포넌트 토픽으로 링크하려면
!AL(TLabel_object, 1)
와 같이 콤포넌트 클래스이름에 _object 를 붙여서 토픽을 지정한다. 콤포넌트의 프로퍼티나 메소드에 대한 링크를 만들려면
!AL(TLabel_Caption, 1)
와 같이 콤포넌트 클래스이름에 아이템의 이름을 붙여서 토픽을 지정한다.
위와 같은 가이드 라인에 맞추어서 TdpbLabel 콤포넌트에 대한 간단한 도움말을 하나 만들어 보자. 아래 그림은 마이크로소프트 워드에서 RTF 파일을 작성하는 화면이다. 각주가 추가된 모습과 다른 토픽에 대한 링크가 설정된 모습을 볼 수 있다.

그림 3-16 RTF 파일 편집 화면


위의 그림에서 점선으로 밑줄이 그어진 문자열은 숨겨진 텍스트이다. 각주를 삽입하기 위해서는 메뉴에서 삽입|각주 및 미주를 선택하면 아래와 같은 대화 상자가 나타나고 여기서 사용자 정의 옵션을 선택한 다음 원하는 각주 문자를 입력하면 된다.

그림 3-17 각주를 입력하는 화면


3.5.2. A 각주
WinHelp 도움말 엔진 4.0부터 도입된 A 각주는 일반 도움말에서는 사용할 필요가 없지만 델파이에서는 특별한 의미를 가진다. 델파이의 도움말 시스템은 IDE내에서 문맥 감지 도움말 기능을 제공하기 위해 A 각주를 이용하며 사용자가 만든 도움말은 A 각주를 제공해야지만 델파이 IDE와 통합될 수 있다.
델파이에서 사용하는 A 각주의 형식은 사용하는 토픽에 따라 아래 표와 같다.

표 3-7 A 각주 형식
사용하는 토픽설 명
콤포넌트 메인 토픽형식 : ClassName_Object;ClassName
예제 : TdpbLabel_Object;TdpbLabel
프로퍼티 토픽형식 : ClassName_PropertyName;PropertyName_Property;PropertyName
예제 : TdpbLabel_Edges;Edges-Property;Edges
메소드 토픽형식 : ClassName_MethodName;MethodName_Method;MethodName
예제 : TCustomLabel_Create;Create_Property;Create
이벤트 토픽형식 : ClassName_EventName;EventName_Event;EventName
예제 : TControl_OnClick;OnClick_Event;OnClick


사용자가 델파이 IDE에서 콤포넌트나 프로퍼티등을 선택하고 F1 키를 누르면 델파이는 위의 표에 나타난 형식으로 검색어를 만들고 WinHelp 검색 엔진에 이를 찾도록 한다. 만약 하나의 토픽을 찾았다면 그 토픽을 보여주고 여러 개의 토픽을 찾았다면 찾은 토픽 대화 상자를 보여주고 이 대화 상자에서 사용자로 하여금 토픽을 선택하도록 해 준다.
3.5.3. 도움말 프로젝트 및 목차 파일 만들기
도움말에 사용될 토픽이 완성되면 도움말 프로젝트를 만들어서 이를 HLP 파일로 만들어야 한다. 이 도움말 프로젝트는 직접 텍스트 파일로 만들어도 되지만 마이크로소프트에서 제공하는 Help WorkShop 을 이용하는 것이 훨씬 쉬울 것이다. Help WorkShop은 델파이 Help 디렉토리 아래에 Tools 디렉토리에 있다. 아래 화면은 dpbLabel.hpj 프로젝트를 편집하고 있는 Help WorkShop 화면이다. 앞에서도 얘기했지만 콤포넌트의 프로퍼티, 메소드, 이벤트에 대한 리스트를 보여줄 때 사용하는 창과 콤포넌트 메인 토픽과 각 프로퍼티, 메소드, 이벤트에 대해 설명하는 창 이렇게 두개를 사용하기 때문에 도움말 프로젝트를 만들 때 반드시 Windows 섹션에 두개의 윈도를 만들어 주어야 한다.

그림 3-18 Help WorkShop 프로젝트 편집 화면


도움말 프로젝트를 모두 작성하고 난 후 컴파일을 하면 .HLP 확장자의 도움말이 만들어진다.
Help WorkShop은 도움말 프로젝트뿐만 아니라 도움말의 목차 파일도 만들 수 있다. 윈도 도움말 프로그램인 WinHelp는 도움말 파일을 열 때 도움말 파일의 이름은 같고 확장자만 .CNT 를 가지는 목차 파일을 찾아 보고 있으면 도움말 항목 대화 상자에 목차 페이지를 만들어 준다. 목차 파일은 도움말의 목차를 보여주고 이 목차를 더블 클릭하면 지정한 도움말 파일의 지정 토픽으로 이동하는 기능을 제공해 준다. 목차 파일도 프로젝트 파일과 마찬가지로 텍스트 파일이지만 아래 그림처럼 Help WorkShop으로 편집하는 것이 편할 것이다.

그림 3-19 Help WorkShop 목차 파일 편집 화면


이렇게 목차 파일을 만들고 dpbLabel.hlp 파일을 실행시키면 아래 그림처럼 목차 파일을 볼 수 있을 것이다.

그림 3-20 도움말 목차 화면


3.5.4. 도움말 설치
자. 이제 도움말 파일과 목차 파일을 만들었다. 현재 도움말은 독립적으로 실행되고 도움말을 볼 수 있다. 이제 이 도움말을 델파이의 기존 도움말과 통합해보자. 델파이에서 Help|Customize 메뉴를 선택해 보자. 그러면 아래 그림과 같이 OpenHelp 프로그램이 동작된다.

그림 3-21 OpenHelp 동작 화면


이 프로그램에서 Contents, Index, Link 페이지 각각에 방금 만든 도움말 파일을 추가하고 저장 버튼을 누르면 델파이 기본 도움말 프로젝트(.OHP 확장자를 가지며 델파이의 help 디렉토리에 있다.)를 업데이트한다. 문맥 감지 도움말을 사용하도록 하려면 반드시 Link 페이지에 도움말 파일을 추가해 주어야 한다. OpenHelp의 자세한 사용법은 OpenHelp 도움말을 참조하기 바란다.
이렇게 델파이 도움말 시스템과 통합된 dpbLabel.hlp 파일이 정상적으로 동작하는 지 검사해 보자. 새 프로젝트를 하나 만들고 새 폼에 TdpbLabel 콤포넌트를 올려 놓고 선택한 다음 F1 키를 눌러보고 다시 오브젝트 인스펙터에서 Edges 프로퍼티를 선택하고 F1 키를 눌러 보자. 정상적으로 동작한다면 아래 그림처럼 동작할 것이다.

그림 3-22 TdpbLabel 콤포넌트 메인 토픽




그림 3-23 Edges 프로퍼티 토픽





저작권에 대한 공지
이 문서에 포함된 모든 글과 소스 코드는 작자인 저 김성동의 지적 재산이지만 무단으로 배포하거나 책이나 강의 교재등을 위한 복제 등 저작권을 저해하는 행위를 제외하고는 자유롭게 사용할 수 있습니다.
또한 이 페이지에 대한 링크는 자유롭게 할 수 있으나 전문을 전제하는 일은 허용하지 않습니다.