Статьи

Создание help-файла (справки) в формате CHM для Delphi-приложения в Dr.Explain

Установка

Скачайте дистрибутив программы Dr.Explain в разделе «Загрузить» официального сайта продукта по адресу http://www.drexplain.ru/ и пройдите стандартную процедуру установки программного обеспечения для начала его использования.

Доступно использование бесплатной незарегистрированной версии программного обеспечения без ограничения по времени. Функционал для бесплатной и лицензионной версий Dr.Explain совпадает, однако все изображения в итоговом сформированном в бесплатной версии файле справки будут помечены специальным водяным знаком.


Рис. 1. Мастер установки Dr.Explain



Создание и настройка нового проекта

Для создания нового проекта файла справки с возможностью последующего экспорта в файл формата CHM в Dr.Explain выберите пункт «Создать новый проект» в стартовом окне программы, либо перейдите в пункт «Файл -> Создать» главного меню программы.


Рис. 2. Стартовое окно программы Dr.Explain

Перейдите в пункт меню «Настройки -> Настройки проекта» и в открывшемся диалоговом окне перейдите в раздел «CHM экспорт -> Управление Help ID». Для осуществления последующей привязки проекта Delphi к темам файла справки установите флаг «Экспорт Help ID в CHM». Нажмите кнопку «OK» для применения настроек к проекту.


Рис. 3. Окно «Настройки проекта»

После применения настроек для каждой уже созданной темы и каждой новой создаваемой в дальнейшем теме будет автоматически присвоен уникальный цифровой идентификатор HelpID.



Создание тематических разделов в файле справки

Удобная структура файла справки достигается путем создания тематических разделов на формы и объекты описываемого приложения.

Создайте темы файла справки, перейдя в пункт меню «Настройки -> Добавить тему», или нажмите правой кнопкой мыши на дерево проекта в левой части экрана, после чего в открывшемся меню выберите пункт «Добавить -> Добавить тему». Для полного описания Delphi-приложения создайте темы для каждого его объекта. В таком случае в приложении по нажатию клавиши F1 будет открываться информация об объекте, на котором находится фокус.


Рис. 4. Дерево проекта Dr.Explain

В дереве проекта укажите название созданных тем и определите их порядок, используя соответствующие пункты меню.

Перейдите в нужную тему в дереве проекта и в окне редактора введите содержимое раздела в свободной форме. В окне редактора имеется стандартный функционал для форматирования текста.

Во вкладке «Ключевые слова» укажите набор ключевых слов для поиска по файлу справки. Для того, чтобы ассоциировать ключевое слово с определенной темой, выберите тему в дереве проекта и установите флаг напротив выбранного ключевого слова.


Рис. 5. Ключевые слова

Для создания описания конкретного объекта Delphi-приложения (в том числе и формы в приложении) также можно воспользоваться кнопкой «Схватить экран».


Рис. 6. Окно «Захват проекта»

В открывшемся диалоговом окне нажмите на пиктограмму «Accessible-объект» или «Win32-окно», после чего перейдите в окно приложения Delphi и выберите описываемый в разделе объект одним из указанных способов:

  • Нажмите на клавишу PrtScr;
  • Нажмите на объект, удерживая нажатой клавишу Ctrl;
  • Поочередно кликните двумя кнопками мыши по объекту.

В результате выделения объекта в редакторе раздела будет автоматически создана тема, содержащая скриншоты как самого объекта, так и зависящих от него объектов приложения. Интерфейс редактора позволяет удалять информацию об объектах раздела и менять их местами, не выходя из редактора нажатием одной кнопки.


Рис. 7. Результат выполнения захвата объекта



Настройка значений Help ID

В Dr.Explain существует возможность редактирования значения Help ID. Для изменения значения идентификатора выберите желаемую тему и нажмите на ячейку «Help ID» в окне свойств страницы. Введите свое значение и уберите фокус мыши с поля для применения значения.


Рис. 8. Изменение значения Help ID в окне «Свойства страницы»

Перейдите в пункт меню «Инструменты –> проверка проекта на ошибки» для проверки уникальности измененного Help ID. В случае совпадения этого значения у нескольких тем будет выдано сообщение о дублированных значениях. Для корректного создания и привязки к проекту Delphi файла справки CHM устраните дублирование, изменив одно или несколько значений Help ID, не выходя из окна «Проверка проекта» нажатием на ячейку в поле Значение.


Рис. 9. Окно «Проверка проекта». Дублированные значения Help ID



Экспорт проекта в CHM-файл

По окончании редактирования сохраните проект и перейдите в пункт меню «Настройки -> Экспорт в CHM». Установите флаг «Запустить проверку проекта перед экспортом» для предварительной проверки проекта на корректность. Установите флаг «Открыть CHM файл» для открытия файла CHM после его создания и установите флаг «Перезаписать молча» для перезаписи существующего проекта без открытия диалогового окна «Сохранение CHM-документа». Нажмите кнопку «Начать экспорт». Лог экспорта будет отображаться в окне «Экспорт в CHM». По окончании экспорта нажмите кнопку «Закрыть».


Рис. 10. Окно «Экспорт в CHM»



Установка пути к CHM-файлу в проекте Delphi

Для загрузки файла справки CHM в проекте Delphi требуется указать путь к этому файлу. Для этого выполните одну из следующих операций (доступно для версий выше Delphi 7):

· Перейдите в пункт меню среды Delphi «Project -> Options» и во вкладке «Application» укажите путь к файлу в поле «Help file».

Примечание: В случае указания полного пути к файлу приложение Delphi, запускаемое на произвольной машине, будет искать файл справки именно в указанной директории, которая может отсутствовать на машине с установленным приложением. Поэтому оптимальное решение – указывать относительный путь к файлу справки.


Рис. 11. Установка относительного пути к файлу справки CHM с помощью GUI Delphi

· Перейдите в пункт меню среды Delphi «Project -> View Source» и в открывшемся окне введите код

Application.HelpFile:=ExtractFilePath(Application.ExeName) + 'Helpdrexplain.chm’,

где 'Helpdrexplain.chm’ - относительный путь к файлу справки CHM.


Рис. 12. Программная установка относительного пути к файлу справки CHM



Привязка темы файла справки CHM к форме приложения Delphi

В проектах Delphi имеется возможность указания индивидуального файла справки для каждой из форм проекта. Для этого выполните одно из следующих действий:

· В коде проекта введите строку

HelpFile:=ExtractFilePath(Application.ExeName) + 'Helpdrexplain.chm'


Рис. 13. Программная установка относительного пути к файлу справки CHM для объекта TForm

· В инспекторе объектов для формы укажите соответствующее значение в поле «HelpFile»


Рис. 14. Установка относительного пути к файлу справки CHM для объекта TForm в окне «Инспектор объекта»



Привязка темы файла справки CHM к объектам приложения Delphi

Формат файла CHM и приложения Delphi позволяют назначить каждому объекту проекта свою тему файла справки, которая будет открываться при нажатии клавиши F1 в случае наличия фокуса на данном объекте. Для этого в Инспекторе объекта в поле «HelpContext» укажите HelpID из созданного файла CHM. В случае, если в файле справки отсутствует тема с HelpID, равным указанному значению «HelpContext», в файле справки будет открыта тема, ассоциированная с родительской формой.



Дополнительные способы вызова CHM-файла из приложения Delphi

Существует несколько альтернативных вариантов вызова справки из приложения Delphi:

· Выполните команду ShellExecute(Application.Handle, 'open', ’Help/drexplain.chm', nil, nil, 0); по нажатию кнопки или другому действию на форме. Предварительно пропишите в блоке Uses расширение ShellAPI. Данное действие откроет главную страницу файла справки. При таком способе вызова файла справки не обязательно осуществлять предварительную ассоциацию файла справки с приложением.


Рис. 15. Вызов файла справки с использованием команды ShellExecute

· Выполните команду Application.HelpCommand(HELP_FINDER,0); по нажатию кнопки или другому действию на форме.


Рис. 16. Вызов файла справки с использованием команды Application.HelpCommand



Особенности интеграции файла справки в приложениях Delphi 7

Для использования файла справки CHM в проектах Delphi версии 7 или ниже необходимо воспользоваться расширениями сторонних разработчиков.

Скачайте и разместите в директории вашего проекта файл *.pas одного из выбранных расширений:

· HtmlHelpViewerEx (http://dl.dropbox.com/u/201788/Projects/HTMLHelpViewerEx.zip);

· HtmlHelpViewer (https://github.com/darrincedwards/SESComponentsNW/blob/master/HTMLHelpViewer.pas);

· StoHtmlHelp (http://pyscripter.googlecode.com/svn/tags/Release_1.7/StoHtmlHelp.pas);

Укажите название подключаемого расширения в любом разделе Uses проекта Delphi.


Рис. 17. Подключение стороннего расширения к проекту Delphi 7

Дальнейшая работа с файлом справки в приложениях Delphi версии 7 или ниже осуществляется описанными выше способами аналогично другим версиям Delphi.