Newcomposers.ru

IT Мир
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Html help workshop создание справки

Html help workshop создание справки

Эта статья впервые была опубликована на сайте www.relib.com

Если вы когда-либо смотрели Справку в Internet Explorer (IE) последних версий, то наверняка задавались вопросом, как создать справочную систему для вашего приложения подобно этой? В этой статье рассказывается как сформировать систему html-справки, используя Microsoft HTML Help Workshop, и как вызвать из VB-приложения готовый справочный файл.

Впервые Microsoft представила HTML Help — новую справочную систему, основанную на html — в августе 1997 как замену WinHelp. Это было относительно ново и не использовалось в других приложениях, кроме IE. Однако, как мы можем сейчас видеть — все новые версии продуктов Microsoft используют HTML Help: начиная игрой «Пасьянс» и заканчивая операционной системой Windows 98. Чтобы использовать советы из данной статьи на вашем компьютере должен быть установлен как минимум IE 3.02 (для использования всех функций HTML Help вы нуждаетесь в одной из последних версий IE).

Типичное окно HTML Help состоит из трех основных частей, как показано на Рис.1. В верхней части панель инструментов, которая содержит кнопки управления. В левой нижней части — окно навигации, импортированное из ActiveX-компонента HHCtrl.OCX и предоставляющее возможности просмотра оглавления, индекса и функцию поиска. В правой нижней части — окно содержания, которое действует как контейнер для HTML документов.

Рис.1. Три части окна Справки Internet Explorer 4.0.

HTML Help Workshop

Для создания файлов HTML Help вы можете использовать специализированный редактор HTML Help Workshop, созданный Microsoft. HTML Help Workshop доступен для загрузки на сайте Microsoft. В этой части показывается, как сделать простую справочную систему с использованием этого инструмента. Прежде чем начать, установите HTML Help Workshop на вашу машину и посмотрите табл.1, дающую пояснения к различным типам файлов, используемых в HTML Help.

Табл.1. Файлы, используемые в HTML Help.

Создание проекта Справки HTML Help

До того, как вы сможете начать формировать вашу систему Справки, вы должны создать все HTML-файлы, которые потребуются для создания справочного файла. Затем создайте каталог HTMLHelp и сохраните там подготовленные HTML-файлы — это будет каталог вашего проекта.

Теперь откройте HTML Help Workshop и выберите в меню пункт File | New. В появившемся диалоговом окне New выберите Project и щелкните OK. Запустившийся Мастер Проекта (New Project Wizard) предложит вам выполнить ряд шагов для создания вашего проекта. Убедитесь, что проверили опцию HTML Files в окне New Project-Existing Files и прибавили ваши HTML-файлы к создаваемому проекту. Щелкните кнопку Finish, чтобы создать проект. Рисунок 2 показывает типичное окно HTML Help Workshop.

Рис.2. Окно редактора HTML Help Workshop.

Главное окно HTML Help Workshop состоит из четырех закладок: Проект, Содержание, Индекс, Справка и набора кнопок для каждой закладки. Вы можете использовать закладку Проект (Project), чтобы изменить параметры проекта, добавить или удалить файлы содержания, изменить настройки окна и установить параметры для HTMLHelp API. Установка настроек окна и HTMLHelp API важна для VB разработчиков. Мы покажем вам позже как установить эти параметры.

Добавление оглавления и индексных файлов

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

Чтобы добавить файл оглавления к вашему проекту щелкните закладку Contents (Оглавление) и увидите диалог Table Of Contents Not Specified. Выберите Create A New Contents File, чтобы создать пустую таблицу файла оглавления. Теперь вы сможете прибавить ваше содержание, используя кнопки Insert Heading и Insert Page. В диалоговых окнах, которые появляются, когда вы выбираете эти параметры, вы можете сопоставить HTML-файлы с разделами и страницами. Вы можете также редактировать, удалять или реорганизовывать ваши разделы и страницы, используя кнопки Edit, Delete и Move Selection.

Индексный файл содержит ключевые слова, которые вы видите, когда щелкаете закладку Index. Для добавления индексного файла к вашему проекту щелкните закладку Index и увидите диалог Index Not Specified. Выберите Create New Index и создайте пустой индексный файл. Вы можете прибавлять ключевые слова, использующие кнопку Insert A Keyword и сопоставлять HTML-файл с этим ключевым словом. Вы можете также редактировать, удалять или реорганизовывать ключевые слова, используя кнопки Edit, Delete и Move Selection.

Параметры окна и HTMLHelp API

Параметры окна позволяют вам определять вид справочного окна при запуске. Вы можете определить, какие кнопки показывать на Панели Инструментов, какие закладки показывать на Панели Навигации и устанавливать другие свойства, которые изменяют вид справочного окна.

Когда вы вызываете HTMLHelp API из VB, вы можете обратиться к этим свойствам и показывать справочное окно в различных стилях. Кликните закладку Project, затем кнопку Add/Modify Window Definitions. В окне Add A New Window Type введите MyWindow (или любое другое название) и щелкните OK. В диалоговом окне Window Type вы можете выбрать различные закладки, чтобы изменить кнопки, стили и т.д. Кликнув OK, будет создано новое определение окна.

Если вам надо включить в ваш справочный файл закладку Search — кликните Панель Навигации и выберите Add Search Tab. Нажав OK — перед вами появится Мастер, который поможет создать функцию поиска. На втором шаге выберите Compile Full-text Search Information, чтобы позволить компилятору Справки сформировать ключевые слова для поиска.

Кнопка HTMLHelp API Information позволяет установить параметры контекстно-зависимой справки. Когда вы нажмете эту кнопку, вы увидите диалог HTMLHelp API information. Вы можете сопоставить файл заголовков, который определяет все контекстные идентификаторы, в закладке Map (Карта). Рис.3 показывает содержание типичного файла заголовков.

Рис.3. Файл заголовков, используемый HTMLHelp API.

Вы можете использовать закладку Alias, чтобы сопоставить константы идентификаторов контекстной Справки, определенные в заголовке HTML-файла, как показано на рис.4. Когда вы вызываете HTMLHelp из VB с константой идентификатора контекстной Справки, вы можете показать нужную тему Справки, связанную с этой константой.

Рис.4. Сопоставление идентификторов с HTML-файлами в закладке Alias.

Вы можете также устанавливать «всплывающий» текст используя закладку Text Pop-ups. Подробнее об этой возможности смотрите в он-лайн Справке по HTML Help Workshop.

Компиляция вашего проекта Справки

Прежде, чем вы начнете компилировать, нажмите кнопку Change Project Options в закладке Project и выберите Default File для вашего проекта в закладке General. Вы можете также кликнуть закладку Files, чтобы изменить название скомпилированного файла или проверить оглавление и индексные файлы. Нажмите кнопку Save All Project Files And Compile, чтобы откомпилировать ваш файл.

По умолчанию, ваш откомпилированный справочный файл будет иметь то же самое название как файл проекта с расширением CHM. Если в течении компиляции в вашем проекте встретятся какие-либо ошибки вы увидите их в правом окне. После успешной компиляции вы сможете вызывать вашу Справку из VB.

Вызов Справки из VB

Вы можете использовать API-функцию HTMLHelp, чтобы показывать справочные файлы из VB. Сейчас мы покажем вам, как использовать HTMLHelp API так, чтобы вы смогли многократно использовать это. Для начала создадим класс и назовем его CHelp. Добавьте следующий код а ваше VB-приложение: Класс CHelp имеет один метод — Show, он показан в следующем примере и имеет одним из параметров — имя файла. Это имя файла может быть откомпилированным файлом (CHM) или HTML-файлом (HTM). В первом случае вы можете использовать следующие два параметра для управления окном Справки. Второй параметр WindowPane является необязательным. Он отвечает за настройки окна, которые мы обсуждали ранее и может использоваться, чтобы отображать Справку в различных видах. Третий параметр ContextID является также необязательным. Подставив значение ContextID вы сможете реализовать контекстно-зависимую справку. Как видите, вы должны включить символ «>» с именем файла, если вы используете WindowPane. Команда HH_DISPLAY_TOPIC показывает содержание справки в окне Help. HH_HELP_CONTEXT отображает справку в зависимости от ContextID. HTMLHelp API возвратит указатель созданного справочного окна.

Использование класса CHelp

Как только вы создаете класса CHelp, все, что вы должны делать — вызов метода Show с именем откомпилированного файла в качестве первого параметра. Вы можете также передавать название HTML-файла, чтобы открыть его непосредственно в окне темы справки без Панели Навигации и Панели Инструментов.

Следующий пример показывает, как вызвать метод Show в процедуре события Click кнопки cmdShow. Вы можете попробовать вызов с другими параметрами, чтобы управлять окном Справки.

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

Дополнительную информацию Вы можете получить в компании Interface Ltd.

Создание справочной системы.

Описание возможностей HTML Help Workshop

Рассмотрим более подробно возможности HTML Help Workshop . Используя этот инструмент, можно, как уже говорилось, создать справочную систему в виде скомпилированного файла или специального Web-узла. Файлы, составляющие разделы этой системы, содержат тексты, графику и другие элементы, которые могут появляться в разделах справки. Другие файлы, также являющиеся частью справочной системы, содержат информацию, необходимую для организации внешнего облика системы, организации поиска нужных разделов и других манипуляций с ней. HTML Help Workshop позволяет создать оглавление, индексы и файл проекта, объединяющий все файлы справочной системы. В процессе компиляции файла проекта и всех файлов, связанных с ним, HTML Help Workshop создает единый файл справочной системы, выполняя одновременно операцию сжатия. Сжатие HTML -файлов и файлов других типов позволяет существенно экономить требуемое дисковое пространство .

Типы файлов, появляющиеся в проекте, зависят, конечно, от того, какие средства используются в разделах справки, от возможностей, какими будет обладать система и от того, в каком виде она будет представлена — скомпилированном файле или Web-узле. Чаще всего, в проект включаются файлы следующих типов:

  • HTML-файлы, описывающие разделы справки.
  • Графические и мультимедийные файлы, если в разделах справки есть ссылки на элементы подобного рода.
  • Файлы, описывающие содержание справочной системы
  • Файлы индексов, необходимые для поиска разделов по индексам.
  • Вспомогательные файлы с информацией, необходимой для построения справочной системы.
  • Файл проекта справочной системы, объединяющий всю информацию.В справочную систему можно также включить средства, позволяющие получать справки и тем пользователям, у которых нарушены те или иные функции, например, слух или зрение.
Читать еще:  Html как сделать русский язык

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

Основой справочной системы являются разделы , описывающие те или иные темы. Как уже говорилось, каждый раздел оформляется в виде отдельного HTML -файла, представляя по существу отдельную Web-страницу. Следовательно, предоставляется большой простор при создании раздела справки, поскольку здесь можно применять весь дизайн Web-страниц. Заметьте, поскольку разделы являются Web-страницами, то всю справочную систему совершенно естественно рассматривать в виде Web-узла. Это особенно удобно в тех случаях, когда разрабатываемая система предназначена для коллективной работы пользователей и доступна для работы в корпоративных сетях интранет , сетях экстранет или сети Интернет . В случае, когда справочная система поставляется вместе с самой системой, естественно, приемлемой формой справочной системы является компилируемый файл .

Добавление индексов в справочную систему является одним из наиболее важных способов быстрого доступа к разделам справочной системы, позволяя найти нужный раздел или совокупность разделов по заданному индексу. Зачастую такой способ более приемлем, чем поиск по содержанию или полнотекстовый поиск . Создание индексов выполняется после того, как написаны разделы справочной системы. В каждом разделе выделяются ключевые слова, основные термины, определяющие данную тему. Они и становятся индексом или его частью. Создание индексов требует вдумчивой и кропотливой работы с содержанием и предполагает в какой-то мере знание психологии пользователей, чтобы и начинающий и опытный пользователь смогли найти нужную им тему по тому слову, которое они выбрали в качестве ключа. Как правило, в хорошей справочной системе строится иерархическая, по крайней мере, двухуровневая система индексов. Например, верхним индексом может служить фраза » Справочная система » и этому индексу будет соответствовать множество разделов, а индексами следующего уровня могут быть сочетания » Поиск по индексу» или » Поиск по содержанию».

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

В системе HTML Help Workshop технологически оглавление создается после того, как созданы разделы . При создании таблицы содержания используются два типа элементов оглавления — книги и страницы. В книгу наряду со страницами могут быть вложены другие книги, и потому каждая книга разворачивается в привычную для программистов структуру, называемую деревом. Поскольку содержание руководства на верхнем уровне может состоять из нескольких книг, то фактическая структура содержания является не отдельным деревом, а лесом — более сложной структурой, вполне достаточной для отображения сложной иерархии, связывающей разделы руководства.

Теперь, когда получено общее представление об инструменте HTML Help Workshop , давайте перейдем к рассмотрению примера создания справочной системы. В этот пример я постарался включить достаточно много интересных деталей, иллюстрирующих возможности этого инструмента. Но прежде скажем несколько слов о том, как можно получить нужный инструментарий , если он еще не инсталлирован на Вашем компьютере.

Об инструменте HTML Help Workshop

Все средства, входящие в состав HTML Help Workshop , доступны для свободного использования и могут быть загружены с сервера Microsoft. В начале работы над этой лекцией, у меня уже была инсталлирована версия 1.2, но, переходя к описанию примера, я решил обновить ее на более позднюю версию. Хотя имеющиеся у меня ссылки на страницу загрузки изменились, но найти на сервере Microsoft нужный, свободно распространяемый продукт не представляет особых трудностей. Вот ссылка, использованная мной для загрузки последней текущей версии 1.3 HTML Help Workshop : http://msdn.microsoft.comlibrarydefault.asp?URL=librarytoolshtmlhelpchmhh1start.htm

Справка о справке

Частью HTML Help Workshop , как и положено, является справочное руководство. В качестве примера давайте построим некоторый его аналог — справочное руководство, рассказывающее о том, как строить справочные руководства. Конечно, наш пример будет лишь демонстрационной версией, цель которой рассмотреть все этапы создания руководства. Нас гораздо меньше будет интересовать содержание разделов и, тем более полнота охвата темы.

Создание разделов руководства

Разделы руководства являются основными терминальными элементами справочной системы. При работе в HTML Help Workshop каждый раздел должен быть представлен отдельным файлом в формате HTML. По этой причине разделы могут быть созданы в любом Редакторе, позволяющем работать с таким форматом представления данных. Рассмотрим три основные возможности:

  • Разделы создаются непосредственно в HTML Help Workshop . Для этого достаточно из меню File выбрать пункт New и в появившемся диалоговом окне выбрать HTML в качестве типа создаваемого файла. Такой способ удобен для создания достаточно простых разделов справочного руководства. Но поскольку в данном Редакторе файлов нет набора специальных средств, облегчающих создание и форматирование содержания, то такой способ удобен лишь тем, кто хорошо знаком и привык к непосредственной работе с языком HTML, его тегами. В противном случае, целесообразно использовать более мощные Редакторы.
  • Разделы справочного руководства создаются в Редакторе Word, привычном для большинства разработчиков. Здесь есть почти все необходимые для этого средства. Тем не менее, я рекомендую рассматривать Word только как промежуточный Редактор, используя FrontPage для окончательного редактирования. Дело в том, что не все файлы, созданные в Редакторе Word, будут без ошибок компилироваться и затем просматриваться в HTML Help Viewer. В моих экспериментах при компиляции таких файлов выдавались различные предупреждения о возможных ошибках. Хуже того, рисунки, вставленные в текст раздела, не просматривались при отображении справочного руководства. Последнее связано с тем, что Word вставляет рисунки в коллекцию Shapes. Элементы этой коллекции нормально просматриваются на Web-страницах как в самом приложении Word, так и в Intenet Explorer. Однако в HTML Help Viewer эти рисунки не просматриваются, поскольку там они должны быть представлены тегом Image.
  • По-видимому, наиболее удобным Редактором для создания сложных разделов является FrontPage. Здесь легко и удобно создавать разделы, использующие все возможности Web-страниц, включая, например, изощренные мультимедийные средства. С другой стороны, файлы, созданные здесь, компилируются и просматриваются в HTML Help Viewer без каких либо ограничений, по крайней мере, в моих экспериментах.

Прежде, чем создавать разделы, идеологически правильно создать оглавление руководства. Однако технология работы с системой HHW предполагает первоначальное создание разделов, поскольку при создании пунктов оглавления необходимо сразу связывать их с уже существующими файлами разделов. Тем не менее, давайте танцевать от печки. Вот как выглядит спроектированное мной оглавление (таблица содержания) нашей будущей справочной системы:

Я постарался отобразить в этом тексте иерархическую структуру оглавления. В нем присутствуют два типа элементов — книги и страницы. С каждой книгой и страницей связан отдельный раздел — соответствующий HTML -файл. Книги отличаются тем, что в них могут быть вложены другие книги, о чем уже говорилось ранее. В приведенном выше тексте названия книг выделены жирным шрифтом, курсивом — названия страниц. В соответствии с этим планом наше руководство будет состоять из 10 разделов, составляющих на верхнем уровне две книги — «Microsoft HTML Help» и «Answer Wizard». В первую из этих книг, в свою очередь, вложены еще две книги.

Понимая, как выглядит оглавление, можно приступить к созданию соответствующих разделов. Для создания разделов справки я использовал в качестве основного инструмента FrontPage. Но поскольку большую часть содержания этих разделов составляли материалы этой лекции, то я просто копировал тексты Word, перенося их на Web-страницу, создаваемую в приложении FrontPage. Я не буду приводить детали этого процесса, отмечу лишь, что все файлы, соответствующие спроектированным разделам справочного руководства, были созданы и записаны в один каталог. В этом каталоге будет накапливаться вся информация, необходимая для построения руководства. Этот же каталог и будет содержать будущий проект и скомпилированный файл, созданный инструментарием HTML Help Workshop .

Замечу, что при построении разделов справки никаких особых средств не использовалось, — заголовки, абзацы, гиперссылки и списки — вот, пожалуй, и все используемые элементы. Исключение составляют два раздела — «Рисунки» и «Ссылки». В первый из этих разделов я включил рисунки различных форматов, во второй — различные ссылки. Но об этих разделах и используемых в них элементах я скажу позже чуть подробнее.

Контекстная справка на HTML Help


На примерах для VB.NET


Автор: Никита Зимин
RussianIT
Источник: RSDN Magazine #6-2004

Опубликовано: 19.03.2005
Исправлено: 10.12.2016
Версия текста: 1.0

Введение

История справочных систем от Microsoft насчитывает четыре версии:

  • WinHelp — Появилась вместе с Windows 3.0. Исходный формат базируется на RTF. Поддерживается всеми версиями Windows, но в настоящее время для новых приложений практически не используется.
  • HTML Help 1.x (далее «HH») — Вышла в 1997 г. вместе с IE4. Использует для тем формат HTML и движок IE. Входит в состав всех используемых в настоящее время версий Windows.
  • MS Help 2.x — Выпущена в начале 2002 г. Также использует формат HTML и движок IE. В основном используется для интеграции со справкой Visual Studio .NET
  • Longhorn Help — Новая справочная система, которая будет включена в Windows Longhorn. Подробнее — Introducing Windows «Longhorn» Help

Автором WinHelp и HH является Ральф Уолден (Ralph Walden), работавший на MS с 1987 до начала 1998 года. После ухода из MS он основал KeyWorks Software.

На настоящий момент наиболее удобным форматом, с точки зрения как разработки (наличие обширного инструментария), так и распространения (поддержка операционной системой), несомненно, является HTML Help 1.3.

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


Проект

Основным файлом справки является файл проекта (.HHP), описывающий опции компиляции и содержащий ссылки на все другие файлы, участвующие при сборке. Структура .HHP-файла – это структура INI-файла. Обычно нет необходимости редактировать файл проекта вручную — все, что нужно, может быть задано с помощью HTML Help Workshop (HHW). Новый проект может быть создан с помощью мастера — командой File > New > Project.

Файл проекта может быть создан и вручную. Вот пример типичного .HHP-файла:

Содержание и предметный указатель

Содержание справки редактируется на вкладке Contents и содержится в .HHC-файле. Структура содержания — иерархическая, каждый элемент поименован, имеет иконку (выбирается из списка), к элементу содержания может быть привязана одна или несколько тем (HTML-файлов).

Предметный указатель описывается на вкладке Index и хранится в .HHK-файле.

.HHC и .HHK сохраняются из HHW в виде, похожем на HTML, но здесь есть одна тонкость. Если вы хотите формировать .HHC или .HHK сторонними средствами, НЕДОСТАТОЧНО, чтобы это был XML, сформированный по тому же DTD —файл должен содержать ту же шапку и такие же отступы в каждой строке — лишь в этом случае он будет принят в HHW и корректно прочитан компилятором.

Если вы хотите иметь возможность использовать в .HHC- и .HHK-файлах русский язык, не редактируйте эти файлы в HTML WorkShop – это средство не умеет работать с русским языком. – прим.ред.

Страницы справки (темы) для HH — это обычные HTML-страницы, для создания которых может быть использован любой HTML-редактор — начиная от простейших Notepad и FAR+Colorer до монстрообразных MS Word и FrontPage.

Рекомендуется описать используемые во всех топиках стили с помощью CSS и поместить описание в отдельном файле — например, Manual.css — который подключать в заголовке каждой темы:

Сборка (компиляция)

Для сборки готового .CHM файла из HHW используйте команду File > Compile или соответствующую кнопку на панели команд.

В некоторых случаях может понадобиться возможность сборки справочника в автоматическом режиме — используйте утилиту hhc.exe с параметром — именем файла проекта:

Контекстная справка

Будем считать, что у нас уже написаны HTML-файлы, описывающие отдельные объекты программы (главное окно, диалоги и т.п.), и нам остается только связать программу с этими файлами.

1. В проекте на VB.NET заводим отдельный модуль (например, HelpSystem). В нем мы описываем все вещи в программе, для которых у нас будет контекстная справка, например:

2. В проекте справки заводим файл Map.h вида:

т.е. здесь мы описываем то же, что и в HelpContextID enum, но в другом формате. HelpContextID enum и Map.h должны быть «синхронизированы» — чтобы ID в программе и в справке всегда совпадали. В C/C++ это было проще — формат файла Map.h был специально приспособлен для того, чтобы входной файл для справки совпадал с файлом, используемым в самой программе.

В проекте справки заводим файл Aliases.h вида:

Здесь задается отображение символического имени, заданного в Map.h, на конкретную тему и место в ней.

Вызов контекстной справки происходит так: в HTML Help API передается идентификатор справки — целое число, которое определяется в HelpContextID enum — по нему (используя Map.h) определяется символическое имя, затем по символическому имени (используя Aliases.h) определяется тема, которая будет показана.

В файле проекта справки задаем ссылки на Aliases.h и Map.h:

3. В программе на VB.NET описываем вызов справки:

Здесь g_HelpFilePath — глобальная переменная с полным путем к файлу справки. g_ApplicationContext — глобальная переменная с контекстом приложения, используется для получения главного окна — можно его получать любым другим способом.

Вызов из программы

Везде, где нужен вызов справки, расставляем вызовы вида:

Вызов содержания справки и предметного указателя:

Вызов средствами Win32

Хотя класс System.Windows.Forms.Help и предоставляет необходимую функциональность, бывают случаи, когда ее недостаточно. Например, окно справки всегда лежит поверх окна основного приложения, переданного первым параметром в функцию ShowHelp(). Окно справки может занимать значительное место и закрывать большую часть окна приложения — поэтому может оказаться удобным, чтобы окно справки могло перекрываться окном основного приложения. Но функция ShowHelp() не имеет такой функциональности — вы не можете передать первым параметром Nothing, поскольку получите исключение. В таком случае придется воспользоваться функцией WinAPI:

Собственно вызов выглядит так:

Теперь все отлично — окно справки висит отдельно, работать в программе не мешает.

Helpware FAR

Основной недостаток HTML Help Workshop — это его непредсказуемость. HHW может неожиданно «вылететь» практически в любой момент — например, при сохранении содержания справки, которое вы долго и мучительно редактировали. Второй недостаток — крайне неудобный интерфейс — чтобы добавить новый пункт в содержание, требуется выполнить десяток действий. Все это кажется ерундой, пока вы делаете простую справку для первой версии вашей программы — и превращается в настоящую проблему, если нужно создать мощную справочную систему с сотнями тем.

К счастью, помимо HHW существуют и другие средства разработки HTML Help, среди которых я бы особо выделил Helpware FAR — бесплатный набор утилит для работы над справкой формата HH. Вот некоторые из его возможностей:

  • Редактор проекта (.HHP).
  • Редактор содержания (.HHC) и предметного указателя (.HHK).
  • Утилита проверки связей в .CHM (Link Checker).
  • Сжатие .CHM.

Распространение продукта

Практически все используемые в настоящее время версии Windows уже содержат HTMLHelp:

Html help workshop создание справки

Справочная система (далее в тексте также — «справка») — важная составная часть любой более-менее сложной (и даже простой) программы. Существуют разные форматы справочных систем. Справка в формате WinHelp — о ней в статье и пойдет речь, Html-help — как, например, справка к ОС Windows или к программам MS Office. В качестве справки может выступать набор связанных html-файлов, например так организована справка к СУБД MySQL. Из достоинств WinHelp можно назвать ее надежность и меньшие, чем у HTML-help, требования к ресурсам. Существуют различные программы для создания справочных систем названных типов. Однако, для создания несложной справки вполне достаточно стандартной программы MS Help Workshop, которая поставляется с Delphi. Потребуется еще редактор rtf файлов, в данной статье описывается работа со знакомым всем MS Word’ом. Все действия, которые будут описаны — несложные, но мне в свое время потребовалось определенное количество усилий и времени, чтобы разобраться по справке к Help Workshop, как все это делать. Надеюсь, что статья сможет облегчить этот путь для других. Расчитана она на начинающих. В статье описывается создание простой справки, оглавления к ней, создание последовательностей просмотра, вставка рисунков и гиперссылок, а также подключение справки к программе. Рассматривается только техническая сторона, вопрос о том, что написано в справке, оставлен в стороне.

Общие сведения

В состав справки к программе обычно входит несколько файлов:

  • Файлы содержащие собственно информацию — имеют расширение .hlp
  • Файлы оглавления — .cnt (от апглийского content)
  • После первого вызова справки WinHelp создает файл .gid
  • Также другие типы файлов, например, для полнотекстового поиска, о чем в статье речь не идет.

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

Обычно справка содержит несколько тем и оглавление, из которого можно перейти к этим темам. Самый простой вариант: если тема — одна и оглавления нет. В таком случае просто пишем то, что нужно и сохраняем это в файле с расширением «.rtf». Для создания нескольких тем процесс усложняется ненамного:

  • Каждая тема должна заканчиваться жестким переходом на новую станицу. Для этого после окончания темы нужно в меню (напомню, что речь идет о MS Word) «Вставка» выбрать «Разрыв»->»Начать новую страницу».

Для того, чтобы тема были доступна из оглавления к справке, нужно задать ей идентификатор. Для этого нужно в то место текста, куда будет впоследствии происходить переход из оглавления (начало темы или, если нужно, другое место), вставить специальную разметку, а именно: концевую сноску. Символом сноски нужно выбрать «#». Идентификатором темы служит текст сноски. Например, создадим тему «Поддержка», отделим ее от других тем разрывами страниц и зададим ей идентификатор «support». Для этого поместим каретку ввода около заголовка темы и выберем в меню «Вставка»->»Сноска. «. В диалоговом окне (рис.1) выбираем вид сноски — «концевая», нумерация — «другая», в окошке для ввода символа пишем «#» (без кавычек, понятное дело). Нажимаем ОК, ссылка добавлена и каретка автоматически переведена к тексту ссылки. Пишем «support». Готово.
Повторяем то же самое для всех тем справки. Сохраняем файл. Теперь можно попробовать создать свой хелп.

Рис.1. Добавление концевой сноски.

Запускаем программу HelpWorkshop. Это — файл Hcw.exe в директории DelphiHelpTools. Создаем новый проект через меню «File»->»New»->»Help Project». Справа на панели есть ряд кнопок, нажимаем «Files. «. В диалоговом окне добавляем наш тематический файл и закрываем это окно. Сохраним проект — это будет файл с расширением hpj (Help Project). Насколько я понял, после первого запуска Help Workshop связывает себя с файлами hpj, а также — с файлами оглавления справки (cnt), так что их потом можно открывать двойным щелчком мышью. Для создания help-файла можно просто нажать кнопку «Save and Compile». Откроется новое окно с сообщением о результате компиляции. Предположим, что все в порядке, закроем это окно. Теперь в директории, где находился наш проект (.hpj), должен появиться файл справки. Однако, при двойном щелчке мышью на нем мы сможем просмотреть только первую тему. Чтобы просматривать все темы и перемещаться между ними, нужно добавить файл оглавления.

Создание оглавления справки.

Теперь создаем собственно оглавление. Оно состоит из элементов двух типов — разделы справки, которые включают в себя несколько тем и представлены в оглавлении справки значком книжки и сами темы — текст и картинки, представлены в оглавлении справки значком листа со знаком вопроса на нем (можно посмотреть это в оглавлении любой справки). Также в оглавление можно вставить макросы и включить файлы (include), этого я здесь касаться не буду. Справа на панели есть набор кнопок для добавления и манипуляции элементами оглавления. (Add Below — Добавить ниже, Add Above — Добавить выше, Move Right — Сдвинуть вправо, Move Left — Сдвинуть влево, Edit, Delete). При помощи них создаем нужную структуру оглавления. При добавлении раздела в диалоговом окне нужно указать только его название, при добавлении темы — название, идентификатор (тот, который мы задали ей в rtf-файле, когда вставляли концевую сноску), имя help-файла и имя окна. Если тема находится в том же help-файле, который мы указали как главный, то имя help-файла указывать не нужно. Имя окна указывать тоже не обязательно, если оно не указано, то тема откроется в окне по-умолчанию. Нужно сохранить файл оглавления (он будет иметь расширение .cnt) в той же директории, где находится help-файл лучше с тем же именем, что и help-файл. Теперь нужно снова открыть файл проекта .hpj и, нажав кнопку «Options», в открывшемся диалоговом окне на закладке «Files» указать наш файл оглавления (Contents file). Закрываем диалоговое окно, снова нажимаем «Save and Compile». Теперь при двойном щелчке мышью по значку файла справки должно открыться ее оглавление, из которого можно получить доступ ко всем темам.

Мне не удалось, похоже, это невозможно, создать такую структуру оглавления, чтобы в самом левом ряду сначала шел значок темы (например, «Общие сведения»), а под ним — значки разделов. Пришлось даже для одиночной темы создавать раздел, содержащий ее одну.

Создание последовательностей просмотра.

Разметка имеет следующий вид: это тоже концевые сноски, как и для идентификаторов тем, однако в данном случае знаком сноски служит не символ «#», а «+» — знак плюса. Текстом сносок может быть либо число, либо строка символов. Просмотр будет осуществляться в порядке возрастания (как при сортировке строк). Отсюда следующее — если используются номера, то нужно вставлять необходимое количество нулей перед значащими цифрами для правильной сортировки. Например, если у Вас 20 тем, то первые нужно нумеровать как 01, 02, и т.д. Возможно несколько вариантов:

  • Если последовательностей несколько, то каждая из них может иметь имя, а темы внутри последовательности отличаться номерами (например, GUI1, GUI2, GUI3, . ), Если номера не заданы, WinHelp сам создаст последовательность просмотра при компиляции проекта в том порядке, как расположены темы в файле .rtf.
  • Если не писать ничего в текстах ссылок или написать во всех ссылках «auto» (без кавычек), то WinHelp при компиляции создаст одну последовательность просмотра в том порядке, как расположены темы в файле .rtf.

Чтобы добавить кнопки навигации » >» в окне справки (по умолчанию их нет), нужно определить хотя бы одно окно. Для этого, открыв файл проекта в HelpWorkshop, нужно нажать кнопку «Windows. » в правой части окна. В диалоговом окне с закладками нажать кнопку «Add. » и в открывшемся окне ввести в поле названия «main», а поле типа окна очистить, после чего нажать OK. Теперь у нас определено одно окно, различные свойства которого можно изменять, перемещаясь по закладкам. На закладке «Buttons» отмечаем галочкой «Browse». Нажимаем ОК, готово. Теперь окно справки будет иметь нужные кнопки. Нажимаем «Save and Compile» внизу окна и можем проверять, что получилось в выходном help файле.

Добавление картинок и гиперссылок.

Первый параметр, как написано в справке, может указывать на программу или файл. Однако, как и в ShellExecute, вместо имени файла можно указать URL, например «http://www.mysite.ru» или «mailto:nekto@somemail.ru».
Чтобы создать hotspot, запускающий такой макрос, нужно сделать следующее:
Сразу после текста hotspot’a ввести символ «!», а сразу за ним — текст макроса, например:

Примечание: URL в скобках должен быть без кавычек.
Далее, нужно отформатировать этот отрывок так: текст hotspot’a должен иметь двойное подчеркивание, а символ «!» и текст макроса после него — иметь атрибут «скрытый». И то, и другое делается через меню «Формат» -> «Шрифт» (см. рис. 2) На всякий случай, еще раз уточню: двойное подчеркивание (выпадающий список рядом с «цветом текста»), а не зачеркивание..

Теперь, если добавить такой hotspot и компилировать проект, то мы увидим в своей справке, что в строке текста

Наш сайт: www.mysite.ru — адрес выглядит и функционирует как гиперссылка.

Присоединяем справку к программе.

Чтобы из меню в программе вызвать оглавление справки, нужно воспользоваться функцией

Чтобы перейти к одной из определенных нами тем справки, нужно вызвать функцию где MyTopic — идентификатор темы.

Один из способов вызова справки — нажатие клавиши F1. Можно организовать вызов контекстной справки при нажатии на F1, когда активным является тот или иной элемент управления. Для этого соответствующей теме справки нужно присвоить номер, а затем этот номер присвоить свойству HelpContext элемента управления. Чтобы задать номера для тем справки, нужно открыть проект справки в HelpWorkshop и нажать кнопку «Map» в правой части окна. Нажимаем в диалоговом окне «Add», вводим идентификатор темы и произвольный номер (например, 1 🙂 ), повторяем это для всех нужных тем (каждой — свой номер), закрываем окно и нажимаем в очередной раз «Save and Compile». Затем в Delphi, в окне инспектора объектов, присваиваем нужные номера нужным элементам управления (напоминаю, свойство HelpContext).

Иллюстрированный самоучитель по Delphi 7 для начинающих

Создание файла справки. Компиляция.

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

После запуска HTML Help Workshop надо из меню File выбрать команду New/Project и в окне New Project – Destination ввести имя файла проекта справочной системы. После щелчка на кнопке Далее в этом и следующем окне, окно HTML Help Workshop.

Первое, что надо сделать, – сформировать раздел [FILES], который должен включать имена HTML-файлов, содержащих справочную информацию по разделам. Чтобы добавить в раздел [FILES] имя файла, надо щелкнуть на кнопке Add/Remove topic files, затем, в появившемся диалоговом окне Topic Files – на кнопке Add и в появившемся стандартном диалоговом окне Открыть выбрать HTML-файл раздела справки. Если справочная информация распределена по нескольким файлам, то операцию добавления нужно повторить несколько раз. После того как в диалоговом окне Topic Files будут перечислены все необходимые для создания справочной информации HTML-файлы, нужно щелкнуть на кнопке ОК. В результате этих действий в файле проекта появится раздел [FILES], в котором будут перечислены HTML-файлы, используемые для создания справочной системы.

Следующее, что надо сделать, – задать главный (стартовый) раздел и заголовок окна, в котором будет выводиться справочная информация. Текст заголовка и имя файла главного раздела вводятся соответственно в поля Title и Default file вкладки General диалогового окна Options, которое появляется в результате щелчка на кнопке Change project options.

Если для навигации по справочной системе предполагается использовать вкладку Содержание, то надо создать файл контекста. Чтобы это сделать, нужно щелкнуть на вкладке Contents, подтвердить создание нового файла контекста и задать имя файла контекста, в качестве которого можно использовать имя проекта. В результате станет доступной вкладка Contents, в которую нужно ввести содержание – названия разделов справочной системы.

Содержание справочной системы принято изображать в виде иерархического списка. Элементы верхнего уровня соответствуют разделам, а подчиненные им элементы – подразделам и темам.

Чтобы во вкладку Contents добавить элемент, соответствующий разделу справочной системы, нужно щелкнуть на кнопке Insert a heading, в поле Entry title появившегося диалогового окна Table of Contents Entry ввести название раздела и щелкнуть на кнопке Add. На экране появится окно Path or URL. В поле HTML titles этого окна будут перечислены названия разделов (заголовки HTML-файлов) справочной информации, которая находится во включенных в проект файлах (имена этих файлов указаны в разделе [FILES] вкладки Project). Если вместо названия раздела справочной информации будет указано имя файла, то это значит, что в этом файле нет тега . Выбрав (по заголовку или по имени) нужный файл нужно щелкнуть на кнопке ОК. В результате перечисленных выше действий во вкладке Contents появится строка с названием раздела справочной информации.

Если нужно изменить значок, соответствующий добавленному разделу, то следует щелкнуть на кнопке Edit selection и, используя список Image index вкладки Advanced окна Table of Contents, выбрать нужный значок (обычно рядом с названием раздела или подраздела изображена книжка).

Подраздел добавляется точно так же, как и раздел, но после того как подраздел будет добавлен, нужно щелкнуть на кнопке Move selection right. В результате чего уровень заголовка понизится, т. е. раздел станет подразделом.

Элементы содержания, соответствующие темам справочной информации, добавляются аналогичным образом, но процесс начинается щелчком на кнопке Insert a page.

Иногда возникает необходимость изменить порядок следования элементов списка содержания или уровень иерархии элемента списка. Сделать это можно при помощи командных кнопок, на которых изображены стрелки. Кнопки Move selection up и Move selection down перемещают выделенный элемент списка, соответственно, вверх и вниз. Кнопка Move selection right перемещает выделенный элемент вправо, т. е. делает его подчиненным предыдущему элементу списка. Кнопка Move selection left выводит элемент из подчиненности предыдущему элементу.

Компиляция

Компиляция – это процесс преобразования исходной справочной информации в файл справочной системы (СНМ-файл).

Исходной информацией для HTML Help компилятора являются:

  • файл проекта (ННР-файл);
  • файл контекста (ННС);
  • файлы справочной информации (НТМ-файлы);
  • файлы иллюстраций (GIF- и JPG-файлы).

Результатом компиляции является файл справочной системы (СНМ-файл).

Чтобы выполнить компиляцию, надо из меню File выбрать команду Compile, в появившемся диалоговом окне Create a compiled file установить переключатель Automatically display compiled help file when done (после компиляции показать созданный файл справки) и щелкнуть на кнопке Compile. В результате этого будет создан файл справки, и на экране появится окно справочной системы, в котором будет выведена информация главного раздела.

Ссылка на основную публикацию
Adblock
detector