Основы офисного программирования и документы Word


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


Контекстные справки, появляющиеся во всплывающих окнах, как правило, представляют собой тексты небольшого размера. Поэтому в отличие от обычных разделов справочного руководства, каждый из которых содержится в отдельном файле, все такие контекстные справки могут быть собраны в одном файле. Иногда предпочтительнее вместо одного большого файла иметь несколько файлов, например, отдельные файлы для элементов каждой формы. Такой сборный файл с контекстными справками в HHW создается в текстовом, а не в HTML формате. Структура такого файла достаточно проста и удовлетворяет следующему синтаксису:

<Заголовок раздела> <Текст контекстной справки> [ <Заголовок раздела> <Текст контекстной справки>]…

Файл, как видите, представляет последовательность озаглавленных разделов. Заголовок раздела начинается специальным ключевым словом и содержит символьный идентификатор раздела. Вот его синтаксис:

.topic <Символьный идентификатор>

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

.topic IDH_Man Вот Человек, который следит за всеми зверьми. Он не допустит, чтобы волк съел козу, не разрешит козе съесть капусту. Он перевезет всех с левого берега на правый берег реки. Он помнит, что лодка его мала и не выдержит трех пассажиров. .topic IDH_Wolf Это волк, который дружен с человеком, равнодушен к капусте, но обязательно съест козу, если рядом нет человека.

В hhp-проект, создаваемый для игры "Волк, Коза и Капуста", были включены, как HTML-файлы с разделами справочного руководства, так и текстовый файл, содержащий контекстные справки к элементам интерфейса, подготовленные для показа во всплывающих окнах. Соответственно проект содержит все три секции - MAP, ALIAS и POPUPS. Заменить в секции POPUPS заголовочный файл на его содержание не удается, по причинам, о которых я уже говорил. В результате файл компилируется с ошибками и, хотя они носят характер предупреждений, нужное отображение между идентификаторами и разделами контекстной справки так и не строится. Вот как выглядит результат трансляции проекта:


Рис. 9.22.  Результат компиляции hhp-проекта игры "Волк, Коза и Капуста quot;

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

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



Содержание раздела