21.6. КОМПИЛЯЦИЯ, ТЕСТИРОВАНИЕ И СВЯЗЬ С ПРОГРАММОЙ

Компиляция и тестирование справочной службы не составляют проблемы: с помощью MS HW создайте (или загрузите) проектный файл и щелкните по кнопке save and compile или по инструментальной кнопке . После этого появляется окно, показанное на рис. 21.9.

При компиляции MS HW сворачивает свое окно и вновь раскрывает его после завершения работы компилятора, если отмечен переключатель Minimize window while compiling. После окончания компиляции в нем будут показаны сообщения компилятора. Если компилятор обнаружил ошибки, он сообщает о них, причем некритические ошибки сопровождаются предупреждениями (warnings) и замечаниями (notes), а критические - прерывают компиляцию.

Рис. 21.9 . Окно запуска компилятора

Для тестирования скомпилированного справочного файла используется одна из опций меню Test:

contents File - тестирует файл содержания;

close All Help - закрывает все ранее открытые нlр-файлы;

send a macro - посылает в winHelp нужную макрокоманду;

WinHelp api - вызывает нужный раздел справочной службы по присвоенному ему в секции map числовому идентификатору.

Тестирование файла содержания заключается в автоматическом вызове всех указанных в содержании разделов. Если какой-либо раздел не вызывается, выдается сообщение (рис. 21.10), позволяющее найти и устранить ошибку.

Связь с программой реализуется с помощью свойств HelpContext видимых компонентов, в которые следует поместить числовые идентификаторы нужных разделов справочной службы так, как они определены. В секции MAP. Кроме того, в свойство Application. HelpFile нужно поместить имя нlр-файла. Обычно эта связь устанавливается в обработчике события ОnCreat главной формы программы. После такой настройки пользователь программы сможет с помощью клавиши F1 получить контекстно-чувствительную справку, т. к. при нажатии F1 автоматически вызывается раздел, числовой идентификатор которого помещен в свойство HeipContext компонента с фокусом ввода. Если Heipcontext компонента с фокусом ввода содержит 0, вызывается раздел, указанный в HelpContext его владельца, а если и у того это свойство не определено, используется HelpContext активной формы (если во всей цепочке владельцев, включая активную форму, свойство HelpContext не определено, нажатие F1 игнорируется).

Рис. 21.10. Сообщение об ошибке вызова раздела