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

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

Разбить на страницы
Показывать лекцию целиком

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

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

  • Руководства по системе. Такое руководство можно представлять, как совокупность книг, каждая из которых содержит разделы и, возможно, вложенные книги. Раздел является терминальным элементом справочного руководства и описывает ту или иную конкретную тему. Содержательная сторона создания таких разделов остается за разработчиком системы. Инструментальные средства позволяют не только помочь в создании отдельных разделов, но и позволяют объединить все разделы в едином справочном руководстве, обладающем широкими возможностями поиска нужной темы. Можно предусмотреть возможность поиска темы по содержанию, по индексу, можно включить полномасштабный текстовый поиск, можно создать папку "Избранное", хранящую часто используемые разделы. Наконец, при некоторой дополнительной работе можно использовать возможности Answer Wizard, для того чтобы использовать Office Assistant и формулировать запрос на поиск в справочной системе на естественном языке, как это делается в самом Office 2000.
  • Справочной системы по интерфейсу. С каждым элементом интерфейса может быть связан соответствующий раздел справки. Например, для всех элементов управления, появляющихся в разнообразных формах и предназначенных для организации взаимодействия с пользователем системы, желательно иметь возможность получать справку о назначении и особенностях работы этого элемента управления. Это вид справки называют справкой "Что это такое?" (What's This Help).
  • Справочная система программного проекта. Программный проект является неотъемлемой частью сложных офисных решений. Поэтому не менее важно иметь хорошую справку и по этой части системы. Это означает создание справки по свойствам и методам объектов для классов, созданных программистом. Необходимость в выдаче справки возникает и при выполнении некоторых функций, например, InputBox, в диалоговом окне которых предусмотрена специальная кнопка Help. Справку, поясняющую ситуацию, следует выдавать при возникновении исключительных ситуаций, возбуждаемых методом Raise, при работе объекта Err и в других случаях.
  • Всплывающие подсказки. Особо выделим еще один вид справок - всплывающие подсказки (pop up help).
  • Таким образом, можно видеть, что справочная подсистема многообразна и создание ее дело совсем не простое. Тем не менее, попробуем во всем этом разобраться и начнем с создания руководства по системе.

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

    Как создать руководство по системе?

    Инструментальная поддержка создания справочного руководства была предусмотрена еще в предыдущей версии Office 97 и позволяла построить систему Windows Help файлов, имеющих уточнение ".hlp". Специальный инструментарий WinHelp позволял строить такие файлы. В Office 2000 произошло серьезное изменение принципов построения справочной системы. Это касается как собственной справочной системы Office 2000, так и инструментария, создающего справочную систему для офисных решений. Эти изменения отражают общую тенденцию работы с офисными документами - миграцию в Интернет и переход к хранению документов, в том числе и справочного руководства в формате HTML.

    Инструментарий Microsoft HTML Help - новое поколение авторизованных справочных систем позволяет построить справочное руководство, страницы которого обладают всеми возможностями Web-страниц. Такое руководство по системе офисных документов, разработанных программистом, может быть частью этой системы и поставляться вместе с ней, также как система справки по Office 2000 является частью этой системы. Есть и другая возможность, - развернуть справочное руководство на Web-узле корпоративной сети.

    Разделы справочного руководства создаются как отдельные HTML - файлы и могут быть созданы в любом Редакторе, позволяющем работать с таким форматом, например, в Word или FrontPage. Подобный Редактор входит и в состав специального инструментального средства, используемого для создания справочных руководств, - HTML Help Workshop (HHW). Нам еще предстоит подробное рассмотрение этого инструмента. Для отображения (просмотра) справочного руководства используется специальный HTML Help Viewer, который в своей работе использует стандартные средства Web-браузера (Internet Explorer). Благодаря новому подходу расширяются стандартные возможности описания раздела справки. Разделы справки теперь могут содержать все элементы, присущие Web-страницам - гиперссылки, script-код, DHTML, элементы ActiveX, графические элементы, аудио и видео.

    Перечислим инструментальные средства, составляющие Microsoft HTML Help и используемые при создании справочного руководства:

  • HTML Help Workshop (hhw.exe) - средство, позволяющее создавать как отдельные файлы, являющиеся частями справочной системы, так и объединять все части в единое целое - законченную справочную систему. Элементы справочной системы, как правило, хранятся в отдельных файлах и могут быть разного типа. К ним относятся HTML - файлы с разделами справочной системы, файл с таблицей содержания, файл с индексами, файлы с рисунками и другими мультимедийными элементами, вспомогательные файлы, наконец, файл проекта, хранящий всю информацию о частях справочной системы. Если говорить о том, в каком виде создается справочное руководство, то здесь есть две основные возможности. Инструмент HHW позволяет скомпилировать справочную систему в виде единого файла (.chm), подобно компилируемому Windows Help файлу (.hlp). Другая возможность состоит в создании специального Web-узла справки.
  • HTML Help ActiveX (HHCtrl.ocx) - элемент управления, организующий навигацию по справочной системе и поддерживающий функциональность вторичных окон. Одним из методов этого элемента является функция HtmHelp, реализующая многие из возможностей этого элемента. Эту функцию, как функцию API в ряде случаев приходится вызывать в программном коде lдля организации выдачи контекстных справок. Подробно эти вопросы будут рассмотрены в следующей лекции.
  • HTML Help Java applet (HHCtrl.class) - альтернативный элемент управления, используемый вместо предыдущего элемента ActiveX, когда предпочтение отдается языку Java.
  • Microsoft HTML Help Image Editor (Flash.exe) - средство, позволяющее выполнять различные операции с графикой.
  • HTML Help Viewer - уже упоминавшееся средство, предназначенное для отображения справочной системы со всеми многочисленными возможностями доступа к ней.
  • HTML Help compiler - компилятор, позволяющий справочное руководство, состоящее из различных файлов, скомпилировать в один специальный файл с уточнением ".chm", сжав, при этом, используемую информацию. Более того, компилятор способен выполнять и обратную операцию, позволяя декомпилировать chm-файл и получить файлы, хранящие отдельные элементы справочной системы.
  • HTML Help executable program - программа, предназначенная для запуска и выполнения справочного руководства. Получив справочное руководство в виде специального скомпилированного файла, необходимо, конечно, иметь и программу, которая может выполнить этот файл.
  • Описание возможностей HTML Help Workshop

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

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

  • 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.com\library\default.asp?URL=\library\tools\htmlhelp\chm\hh1start.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 предполагает первоначальное создание разделов, поскольку при создании пунктов оглавления необходимо сразу связывать их с уже существующими файлами разделов. Тем не менее, давайте танцевать от печки. Вот как выглядит спроектированное мной оглавление (таблица содержания) нашей будущей справочной системы:

    Microsoft HTML Help
    	Введение
    	Создание справочного руководства
    		Разделы
    		Поиск
    	Разное
    		Рисунки
    		Ссылки
    Answer Wizard
    	Вопросы и Office Assistant

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

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

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

    Создание таблицы содержания

    Теперь, когда созданы разделы справочного руководства, можно приступить и к созданию файла, хранящего таблицу содержания (оглавление) нашего руководства. До этого этапа сама система HTML Help Workshop нам была не нужна, так как файлы разделов создавались в среде FrontPage, где возможности по созданию HTML -файлов гораздо шире. Но теперь, при создании таблицы содержания, необходимо войти в среду HTML Help Workshop. Главное меню, как обычно, содержит пункт File и работа, как обычно, начинается с того, что создается новый файл. Вот как выглядит диалоговое окно New, открываемое при выборе соответствующего пункта из меню File, позволяющее создавать в HTML Help Workshop файлы разного типа:

    (рис 8.1) Начальный шаг в процессе создания оглавления справочного руководства

    Для создания таблицы содержания открывается соответствующее диалоговое окно:

    В этом окне главное меню системы осталось без изменения, но слева появилась инструментальная панель с кнопками. Верхняя кнопка(рис 8.2) показывает свойства таблицы содержания. Еще две кнопкиипозволяют соответственно редактировать элемент оглавления или удалить его. Главную функциональную роль играют две кнопки -"heading" и "page". На первой изображен значок папки -, на второй - страницыЭти кнопки задают два уже упоминавшихся типа элементов оглавления - книг и страниц. Если на очередном этапе создания оглавления мы хотим задать книгу, в которой будут располагаться страницы и, возможно, другие книги, то выбирается кнопка "heading", в противном случае - "page".

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

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

    (рис 8.3) Связывание пункта оглавления с файлом, содержащим соответствующий раздел руководства.

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

    В случае, когда предполагается получать контекстные справки по тем или иным разделам, необходимо выполнить дополнительную работу. Суть этой работы состоит в том, что в справочное руководство включаются еще два раздела - MAP и ALIAS, позволяющие с каждым разделом связать числовой и символьный идентификатор. Техника вызова конкретного раздела справочного руководства, основанная на знании, прежде всего, числового идентификатора - HelpContextID - широко используется в работе с документами Office 2000. Эти вопросы будут подробно обсуждаться в следующей лекции. Сейчас же отмечу, что в тех случаях, когда справочное руководство вызывается, как единое целое, создание этих разделов не является обязательным.

    Построение файла проекта

    Можно начинать создавать проект на пустом месте, когда никаких компонент еще нет. Но можно поступить так, как сделал я в данном примере, приступая к созданию файла проекта, когда значительная часть информации, необходимая в проекте, уже создана. Для создания файла проекта, также как и для любых файлов, создаваемых в среде HHW, в меню File нужно выбрать пункт New, а затем в появившемся окне выбрать нужный тип создаваемого файла. Соответствующий Мастер ведет нас на всех этапах создания проекта. Вот как выглядит диалоговое окно на первом шаге работы Мастера:

    (рис 8.4) Начальный шаг создания проекта "Справка о справке"

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

    (рис 8.5) Результат компиляции проекта "Справка о справке"

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

    Теперь первый вариант задуманного нами справочного руководства создан, - он хранится в откомпилированном файле с уточнением ".chm". Его можно просмотреть его в специальном обозревателе HTML Help Viewer, который, как мы говорили, использует компоненты Internet Explorer, хотя и не совпадает с ним полностью. Просмотреть справочное руководство непосредственно в HHW можно двояко, либо щелкнув по кнопке, расположенной на инструментальной панели, либо вызвав из пункта Test главного меню команду HtmlHelp API. В последнем случае используется уже упоминавшаяся функция HtmlHelp, входящая в состав элемента HTML Help ActiveX. Когда используется этот способ, то в открывающемся диалоговом окне следует выбрать команду HH_DISPLAY_TOPIC, позволяющую просматривать скомпилированный файл с уточнением ".chm"или любой из его разделов, указав имя соответствующего HTML-файла. Первый способ тестирования справочного руководства, конечно же, проще, но второй более универсален, поскольку обращение к функции API -может быть выполнено при необходимости и в процедуре, разработанной программистом.

    Пришла пора взглянуть на то, как выглядит созданное справочное руководство:

    (рис 8.6) Справочное руководство "Справка о справке" и его оглавление

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

    Рисунки и ссылки

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

    Рисунки способствуют пониманию сложных понятий и потому часто используются в справочных системах. В разделе "Рисунки" показано отображение рисунков, представленных пятью наиболее употребительными графическими форматами - wmf, gif, jpeg, bmp и png. Все эти форматы отображаются без всяких помех. Вот как выглядят часть из отображаемых рисунков:

    (рис 8.7) Отображение рисунков в справочной системе

    Хотя, как видите, рисунки разных форматов отображаются без проблем, но хочу напомнить, что многое зависит и от того, в каком Редакторе создан файл с рисунками. Вначале я создал файл с рисунками в приложении Word. Этот файл без проблем отображался в Internet Explorer, однако Viewer системы HHW не отображал рисунки, поскольку не понимал тегов, созданных в приложении Word. Напомню, что в этом приложении рисунки помещаются в коллекцию Shapes и им не соответствуют теги Image. Никаких проблем с рисунками не возникает, если соответствующий раздел подготовлен в приложении FrontPage, возможно, путем копирования соответствующего документа Word.

    Поговорим теперь о ссылках - еще одном важном элементе разделов справочной системы. В хорошей справочной системе разделы связаны ссылками, так что, зацепившись за один раздел, можно пройти по цепочке связанных разделов, получив всю нужную информацию. Нет никаких проблем создания гиперссылок в том же Редакторе FrontPage. Источником ссылки (якорем) может быть любое слово, фраза или рисунок, а целью (URL) может быть имя файла, задающего раздел справочной системы или адрес в Internet. Заметьте, что в приложении FrontPage можно указать адрес любого файла, но в справочной системе будут правильно работать ссылки только на разделы этой системы. В нашем примере гиперссылки появляются в нескольких разделах, что позволяет переходить из раздела в раздел. Большинство ссылок сосредоточено в разделе "Ссылки":

    (рис 8.8) Раздел "Ссылки" справочного руководства

    Здесь есть различные ссылки, как локальные - на разделы справочной системы, так и глобальные, в частности, на домашнюю страницу Microsoft. В качестве якорей используются как фразы, так и рисунок совы, вставленный в раздел. Взгляните, как работает ссылка на страницу Microsoft:

    (рис 8.9) Выход в Internet из справочной системы

    Таким образом, можно существенно расширить возможности справочной системы, поскольку не найдя нужной информации в ее разделах, можно перейти в Internet и попытаться найти там нужные сведения, например, на соответствующем узле Microsoft. Заметьте, что страницы Internet отображаются в окне справочной системы, что означает, что они просматриваются с помощью Viewer, а не Internet Explorer.

    Хочу обратить внимание на одну важную особенность Viewer, - все-таки его возможности ограничены в сравнении с Internet Explorer. Он, в частности, не понимает русского языка и потому нельзя использовать в гиперссылках русские имена файлов. Так что есть серьезное ограничение - имена файлов, задающих разделы справочного руководства, должны быть в латинице, чтобы не было проблем со ссылками на эти разделы.

    Несколько точек зрения на одно справочное руководство

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

  • показать возможность нескольких способов структуризации информации, представленной в справочном руководстве;
  • показать, как можно модифицировать готовое справочное руководство, добавляя в него новые разделы и меняя таблицу содержания.
  • Чтобы выполнить намеченные модификации, потребовалось создать новый HTML-файл с разделом, описывающим суть новой книги, а затем в среде HHW добавить в проект этот файл и модифицировать оглавление руководства. Как и ранее, файл был создан в среде FrontPage, простым копированием части текста данного параграфа. Созданный файл с именем "New View " был сохранен в каталоге нашего проекта. Перейдя затем в среду HHW, я добавил этот файл в проект. Для этого на вкладке "Project" есть специальная кнопка, щелчок по которой открывает окно, в котором в проект можно добавлять и удалять файлы разделов:

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

    (рис 8.11) Справочное руководство "Справка о справке" после модификации

    Проблема поиска и создание индексов

  • По содержанию.В этом случае нужный раздел отыскивается путем просмотра оглавления справочного руководства.
  • По индексу.С каждым разделом связывается некоторое множество индексов (ключевых слов или фраз). Задавая или выбирая индекс, можно получить все темы, связанные с этим индексом.
  • Полнотекстовый поиск.Очень мощное стандартное средство поиска, позволяющее просмотреть содержание всех разделов справки и отобрать те из них, которые содержат ключевую фразу, заданную для поиска.
  • Избранное.Специальный каталог, хранящий избранные, наиболее часто используемые разделы справочного руководства.
  • Проблема поиска нужной информации в ворохе существующих документов является одной из центральных проблем, стоящих перед программистами. Microsoft многое сделала для ее решения на серверной стороне, когда структурированные или неструктурированные данные хранятся в хранилищах данных MS SQL Server или Web Store в Exchange Server. Специальные средства Index Server позволяют проводить индексацию хранящейся информации. Но, как видите, многое можно сделать и на клиентской стороне. Инструментарий HHW позволяет структурировать множество файлов, организовать их в виде справочного руководства и использовать различные средства поиска нужной информации.

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

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

    Давайте перейдем к детальному рассмотрению того, как создается файл индексов в среде HHW. Здесь есть две возможности:

  • Можно создавать индексы на уровне справочного руководства, непосредственно добавляя ключевые слова (фразы) в индексный файл. Понятно, что в этом случае необходимо указывать, с каким разделом или разделами связаны эти указатели.
  • Можно добавлять ключевые слова непосредственно в каждом разделе. При этом они автоматически будут переноситься в индексный файл.
  • Вне нашего рассмотрения остается способ создания индексов в ситуации, когда справочное руководство создается в виде Web-узла.

    Создание пустого индексного файла

    Начнем с того, что создадим пустой индексный файл, следуя обычной технологии создания файлов в среде HHW. Отметим, что среди возможных типов создаваемых файлов есть и тип "Index". Можно также щелкнуть вкладку Index, после чего появится диалоговое окно с предложением создать индексный файл, если он еще не был создан. Если щелкнуть нужные кнопки, указать имя индексного файла, то такой, пока пустой файл будет создан. В среде HHW будет открыта вкладка Index, и ее интерфейс во многом схож с интерфейсом вкладки Contents, открываемой при создании таблицы содержания. Почти все кнопки, появляющиеся на левой инструментальной панели, нам уже знакомы и выполняют схожие операции. Вместо двух кнопок Heading и Page появилась одна новая кнопка для задания указателей -. Если щелкнуть по ней, то появится серия диалоговых окон, позволяющая задать ключевое слово или фразу и связать с этим указателем один или несколько разделов. Тем самым реализуется первый способ задания указателей на уровне справочного руководства.

    Первый способ создания указателей

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

    (рис 8.12) Создание индексов при открытой вкладке Index

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

    (рис 8.13) Задание ключевой фразы

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

    (рис 8.14) Связывание индекса с разделом справочного руководства

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

    (рис 8.15) Указатели в справочном руководстве "Справка о справке"

    В нашем руководстве появилась наряду с вкладкой "Содержание" еще одна вкладка "Указатель". Стоит только в окне ввода начать печатать ключевую фразу, как списке указателей выбирается ближайший указатель, совпадающий с началом печатаемой фразы. Выбрав требуемый указатель из списка, достаточно нажать командную кнопку "Показать", чтобы открылся требуемый раздел руководства. Если указателю соответствует несколько разделов, то будет предложен список со всеми возможными разделами, из которого и предстоит сделать окончательный выбор:

    (рис 8.16) Выбор раздела

    Хочу еще раз отметить достоинство предлагаемого инструментария, - справочное руководство, построенное с его помощью, имеет интерфейс, хорошо знакомый пользователям, привыкшим работать в среде Office 2000.

    Модификация индексного файла и второй способ создания указателей

    Также как достаточно просто добавить новое содержание в справочное руководство, изменить его оглавление, также просто модифицировать индексный файл в процессе работы со справочником. Этим мы сейчас и займемся, добавив новые индексы. Чтобы задача была более интересной, мы будем добавлять индексы вторым способом, работая непосредственно с конкретным разделом. Хотя и первый способ создания указателей хорош, и модификацию индексного файла можно проводить аналогично процессу его первоначального создания, но иногда разумно на этом этапе работать с каждым отдельным файлом. Следует также отметить, что второй способ применяется всегда, когда в разделы справочного руководства вставляются ссылки специального типа, так называемые Klinks (Key Links). Эти ссылки позволяют легко переходить из одного раздела в другой. Но поскольку и гиперссылки выполняют эту же работу, то я не буду останавливаться на подробном изложении сути ссылок типа Klinks.

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

    Рассмотрим действия, которые необходимо предпринять, чтобы задать указатели таким способом:

  • Прежде всего, нужно установить новое свойство проекта, указывающее компилятору необходимость выбора ключевых слов из HTML -файлов. Для этого на вкладке "Project" необходимо выбрать уже упоминавшуюся кнопку, открывающее окно свойств проекта. В этом окне следует выбрать вкладку Files и включить флажок "Include keywords from HTML files"(рис 8.17) Включение нового свойства проекта
  • На следующем шаге открывается файл, в котором и будут задаваться ключевые слова, добавляемые затем в индексный файл. Открытие файла раздела, как, впрочем, и любого файла, являющегося частью проекта, выполняется обычным способом через пункт меню или командную кнопку Open. Файл открывается как HTML -файл. Важно после открытия файла поместить курсор в тело этого файла, например, сразу после тега <body>, но не перед ним.
  • В главном меню Edit следует выбрать команду Compiler Information, после чего появится соответствующее диалоговое окно, в котором можно поочередно добавлять ключевые слова, используя командную кнопку Add. В окне добавления можно сразу добавить последовательность ключевых слов или фраз, разделяя их символом ";" (точка с запятой).(рис 8.18) Добавление ключевых слов в HTML -файле раздела
  • По завершении процесса добавления (щелчок кнопки OK) в HTML -файл вставится, как уже говорилось, тег <Object>. Взгляните, как выглядит среда HHW в процессе работы с открытым файлом раздела. В правом окне, где показан HTML-код раздела, можно увидеть сразу после тега <body> добавленный тег <Object>, параметры которого содержат добавленные ключевые слова.(рис 8.19) HTML-код раздела с добавленным тегом Object
  • Аналогичным образом можно добавить ключевые слова в другие файлы разделов, после чего завершить этот процесс перекомпиляцией проекта. Не забудьте только перед повторной компиляцией закрыть справочную систему, если она была открыта, поскольку в противном случае компиляция не будет выполняться и, что хуже, не появится предупреждающее сообщение об этом прискорбном факте
  • В заключение взгляните на обновленное справочное руководство, где в списке указателей можно увидеть вновь добавленные ключевые слова - "Internet" и "Нахождение справки в Internet".

    (рис 8.20) "Справка о справке" с модифицированным множеством указателей

    На этом завершается рассказ о добавлении указателей в справочное руководство.

    Включение полнотекстового поиска и папки "Избранное"

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

    Инструментарий HHW дает возможность предложить пользователям справочного руководства всю мощь полнотекстового поиска. Более того, есть возможность выбрать один из двух вариантов полнотекстового поиска - базовый или расширенный. В базовом варианте поиск ведется на точное соответствие слов или фраз. В расширенном варианте реализован поиск по образцу, выражение, задающее образец, может включать специальные символы, применяемые в таких случаях, например "?", заменяющий любой символ, или "*", заменяющий любую последовательность символов. В расширенном варианте появляются и другие возможности, которые мы рассмотрим чуть позже. Сейчас же упомяну, что в случае большого справочного руководства можно ограничить поиск, задав специальный ограничительный список слов (full-text search stop list). В этот список, обычно, включаются общеупотребительные слова, которые вряд ли являются предметом поиска.

    Рассмотрим, как можно включить два варианта поиска - базовый и расширенный.

    Базовый вариант полнотекстового поиска

    Базовый вариант поиска включается совсем просто. В уже упоминавшемся окне свойств проекта следует выбрать вкладку Compiler и включить флажок "compile full-text search information". После компиляции в справочное руководство добавится новая вкладка "Поиск". Пользователь, выбравший эту вкладку, сможет задавать слово или фразу для поиска, и система найдет все разделы, в тексте которых содержится искомая фраза. В процессе поиска, правда, не будут доступны те возможности, которыми обладает расширенный полнотекстовый поиск.

    Расширенный вариант полнотекстового поиска

    Расширенный вариант поиска включается также достаточно просто. Здесь есть одна тонкость. Это свойство устанавливается не как свойство проекта, а как свойство окна справки, в котором отображается справочная система. Возможность определения в системе HHW окна справки - окна, в котором отображается справочное руководство и контекстные справки, это отдельная тема. Пока, не вдаваясь в детали, скажу только, как можно включить расширенный поиск. При выбранной вкладке "Project" нужно щелкнуть кнопку(Add/Modify window definitions), расположенную на левой инструментальной панели. В появившемся диалоговом окне нужно задать имя окна, - это может быть любое имя. После нажатия кнопки "OK" в следующем диалоговом окне следует выбрать вкладку "Navigation Pane" и включить флажок "Search", если он еще не включен, и связанный с ним флажок "Advanced", который и задает расширенный поиск.

    (рис 8.21) Включение расширенного полнотекстового поиска и папки "Избранное"

    Находясь в этом окне, есть смысл включить и еще один флажок "Favorites tab", задающий папку "Избранное". Тогда окно справки получит еще одно дополнительное свойство - оно будет содержать вкладку "Избранное" и пользователь получить возможность работы с папкой, содержащей его любимые темы справочного руководства.

    Добавив в проект новые свойства, как всегда, необходимо перекомпилировать проект и получить справочное руководство, в котором реализованы новые возможности поиска разделов.

    Взгляните на рисунок, задающий окончательный вариант справочного руководства "Справка о справке".

    (рис 8.22) Расширенный поиск в справочном руководстве

    Возможности расширенного поиска

    Остановимся теперь на тех дополнительных возможностях, которыми обладает расширенный полнотекстовый поиск. Расширенный полнотекстовый поиск позволяет:

  • Включать логические операции в поисковую фразу, рассматривая ее, как некоторое логическое выражение.
  • Задавать поисковую фразу некоторым шаблоном, которому соответствует множество фраз в искомых текстах. При этом используемый синтаксис шаблонов типичен для систем поиска.
  • Задавать ограничение на область поиска, ограничивая, например, ее результатами предыдущего поиска.
  • На предыдущем рисунке можно видеть, что в качестве искомой фразы задано булево выражение "Workshop AND Viewer". В этой фразе "AND" играет роль логической связки. В результате поиска найдены все разделы, в которых встречаются оба эти слова. Один из таких разделов отображен в правом окне. В булевых выражениях можно использовать и другие логические связки - OR, NOT, NEAR. Если задать в качестве образца поиска взятую в кавычки фразу "HTML HELP", то будут найдены разделы, в которых встречается именно это сочетание слов. В случае, когда кавычки будут опущены, будут найдены разделы, в каждом из которых будет найдено любое из этих слов так, как будто они объединены связкой OR.

    Поисковая фраза может быть задана некоторым шаблоном, использующим специальные символы, обычно применяемые в подобных шаблонах. Если задать в качестве образца поиска "Редак*", то будут найдены все слова, начинающиеся с "Редак", - "Редакция", "Редактором" и другие. Заметьте, что при поиске имеет значение регистр (большие или малые буквы).

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

    Заметьте, что русский язык нормально воспринимается, как в текстах справочного руководства, так и в поисковых фразах.

    Папка "Избранное"

    Я уже рассказал о том, как включить в справочное руководство возможность работать с папкой "Избранное". В эту папку обычно помещают часто используемые разделы. Работать с ней очень удобно при больших руководствах и наличии любимых тем.

    Несмотря на то, что рассмотрены далеко не все возможности инструментария Microsoft HTML Help, поставленная цель достигнута, - пройдены все этапы создания справочного руководства, обладающего полным набором возможностей по поиску нужных разделов. В завершении рассказа остался последний штрих, играющий, впрочем, не малое значение. До сих пор вся демонстрация работоспособности справочного руководства выполнялась внутри самой системы. Осталось показать, как подключить справочное руководство к документу Office 2000, чтобы вызывать его так, как обычно вызывается Справка - нажатием кнопки или выбором пункта меню

    Определение окна справки

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

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

    Я напомню, для того чтобы дать собственное определение окна справки и задать его свойства необходимо на вкладке "Project" щелкнуть кнопку(Add/Modify window definitions), расположенную на левой инструментальной панели. В процессе диалога, первым делом нужно будет определить имя окна, а затем установить его свойства, поочередно выбирая вкладки, управляющие этим процессом. Вот как выглядит диалоговое окно Window Types, позволяющее определять свойства окна, открытое на вкладке "General".

    (рис 8.23) Определение свойств окна справки

    Это же окно, открытое на вкладке "Navigation Pane", ранее было показано на рис. 21. Всего вкладок 7 и каждая из них позволяет определить те или иные свойства окна. Перечислим эти вкладки и дадим их краткие характеристики:

  • General - позволяет добавить или удалить новое окно в справочное руководство. Замечу, что с одним руководством можно связать несколько окон, которые будут открываться в подходящий момент. Среди этих окон одно из них будет окном, открываемым по умолчанию. Такое окно всегда имеется, даже если окно справки и не определяется в среде HHW. Кроме командных кнопок Add и Remove, выполняющих операции добавления и удаления окна справки, в диалоговом окне этой вкладки можно задать заголовок окна справки.
  • Navigation Pane - позволяет задать свойства подокна (Pane) навигации. Если не задавать определение окна справки, то по умолчанию оно будет появляться, как окно с тремя подокнами. В левом окне отображается структура справочного руководства - таблица содержания, в правом - текст выбранного раздела, а верхнее горизонтальное окно представляет окно навигации (Navigation Pane). Именно в этом окне отображаются вкладки и различные инструментальные кнопки, доступные пользователю при работе в окне справки. Как я уже говорил ранее, эту вкладку нужно открыть, чтобы добавить к справочному руководству возможность полнотекстового поиска, расширенного полнотекстового поиска и папку "Избранное". Хотя не только эти свойства можно установить при работе с этой вкладкой. В частности, здесь устанавливается вкладка, открываемая по умолчанию.
  • Buttons - позволяет добавлять или удалять различные инструментальные кнопки, появляющиеся в окне навигации, в частности, такие кнопки, как Show/Hide, Print, Forward и Back. Эти кнопки выполняют функции, общепринятые для кнопок с таким названием, так что я останавливаться на этом не буду.
  • Styles - вкладка с многочисленными флажками, определяющими стиль окна. В частности можно добавить к окну кнопки минимизации и максимизации окна, можно включить флажок "PopUp", сделав окно справки всплывающим.
  • Extended Styles - еще одно множество флажков, позволяющее включать такие свойства, как, например, прозрачность или выравнивание текста по правому краю.
  • Position - позволяет задавать позицию окна.
  • Files - позволяет задать ряд файлов, связанных со справочным руководством, например, файл с таблицей содержания и файл раздела, открываемый по умолчанию.
  • Вызов справочного руководства

    Ранее уже говорилось, что в состав Microsoft HTML Help входит HTML Help executable program (hh.exe) - программа, предназначенная для запуска и выполнения справочного руководства, представленного в виде скомпилированного chm - файла. Хотя есть и другие возможности, но проще всего использовать именно эту программу для организации вызова созданного и откомпилированного справочного руководства. Взгляните на тестовый документ, в котором наш справочник вызывается по щелчку специально созданной командной кнопки:

    (рис 8.24) Тестовый документ, вызывающий "Справку о справке"

    Макрос, вызываемый в ответ на щелчок командной кнопки, достаточно прост. Вот его текст:

    Public Sub CallHelp()
    	Dim Path As String, Name As String, FullPath As String
    	Dim Res As Double
    	Path = "E:\O2000\Book2\Cd\ChCreateHelp\"
    	Name = "Справка о справке.chm"
    	FullPath = Path  Name
    	'Вызов программы HH.exe, запускающей справочное руководство,
    	'представленного в виде скомпилированного chm - файла.
    	'Путь к файлу передается в виде параметра программе HH.exe
    	Res = Shell("hh.exe "  FullPath, vbNormalFocus)
    End Sub

    Подведем итоги

    Инструментарий Microsoft HTML Help позволяет достаточно просто создать справочное руководство. Это руководство может быть частью программной системы (системы документов Office 2000), разработанной программистом. Это может быть и независимый справочник, позволяющий структурировать и объединить в одно целое множество разрозненных документов.

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

    Инструментарий HTML Help Workshop позволяет создать справочное руководство, включающее:

  • таблицу содержания руководства - его оглавление,
  • указатели - индексный файл, обеспечивающий быстрый доступ к разделам руководства;
  • полнотекстовый поиск, в том числе расширенный поиск.
  • Папку "Избранное", в которой можно хранить наиболее часто используемые разделы.
  • Справочное руководство представляется в виде скомпилированного chm-файла или может быть развернуто на Web-узле. Специальная программа - hh.exe позволяет открыть справочное руководство и работать с ним.

    Страницы:

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

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

  • Руководства по системе. Такое руководство можно представлять, как совокупность книг, каждая из которых содержит разделы и, возможно, вложенные книги. Раздел является терминальным элементом справочного руководства и описывает ту или иную конкретную тему. Содержательная сторона создания таких разделов остается за разработчиком системы. Инструментальные средства позволяют не только помочь в создании отдельных разделов, но и позволяют объединить все разделы в едином справочном руководстве, обладающем широкими возможностями поиска нужной темы. Можно предусмотреть возможность поиска темы по содержанию, по индексу, можно включить полномасштабный текстовый поиск, можно создать папку "Избранное", хранящую часто используемые разделы. Наконец, при некоторой дополнительной работе можно использовать возможности Answer Wizard, для того чтобы использовать Office Assistant и формулировать запрос на поиск в справочной системе на естественном языке, как это делается в самом Office 2000.
  • Справочной системы по интерфейсу. С каждым элементом интерфейса может быть связан соответствующий раздел справки. Например, для всех элементов управления, появляющихся в разнообразных формах и предназначенных для организации взаимодействия с пользователем системы, желательно иметь возможность получать справку о назначении и особенностях работы этого элемента управления. Это вид справки называют справкой "Что это такое?" (What's This Help).
  • Справочная система программного проекта. Программный проект является неотъемлемой частью сложных офисных решений. Поэтому не менее важно иметь хорошую справку и по этой части системы. Это означает создание справки по свойствам и методам объектов для классов, созданных программистом. Необходимость в выдаче справки возникает и при выполнении некоторых функций, например, InputBox, в диалоговом окне которых предусмотрена специальная кнопка Help. Справку, поясняющую ситуацию, следует выдавать при возникновении исключительных ситуаций, возбуждаемых методом Raise, при работе объекта Err и в других случаях.
  • Всплывающие подсказки. Особо выделим еще один вид справок - всплывающие подсказки (pop up help).
  • Таким образом, можно видеть, что справочная подсистема многообразна и создание ее дело совсем не простое. Тем не менее, попробуем во всем этом разобраться и начнем с создания руководства по системе.

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

    Как создать руководство по системе?

    Инструментальная поддержка создания справочного руководства была предусмотрена еще в предыдущей версии Office 97 и позволяла построить систему Windows Help файлов, имеющих уточнение ".hlp". Специальный инструментарий WinHelp позволял строить такие файлы. В Office 2000 произошло серьезное изменение принципов построения справочной системы. Это касается как собственной справочной системы Office 2000, так и инструментария, создающего справочную систему для офисных решений. Эти изменения отражают общую тенденцию работы с офисными документами - миграцию в Интернет и переход к хранению документов, в том числе и справочного руководства в формате HTML.

    Инструментарий Microsoft HTML Help - новое поколение авторизованных справочных систем позволяет построить справочное руководство, страницы которого обладают всеми возможностями Web-страниц. Такое руководство по системе офисных документов, разработанных программистом, может быть частью этой системы и поставляться вместе с ней, также как система справки по Office 2000 является частью этой системы. Есть и другая возможность, - развернуть справочное руководство на Web-узле корпоративной сети.

    Разделы справочного руководства создаются как отдельные HTML - файлы и могут быть созданы в любом Редакторе, позволяющем работать с таким форматом, например, в Word или FrontPage. Подобный Редактор входит и в состав специального инструментального средства, используемого для создания справочных руководств, - HTML Help Workshop (HHW). Нам еще предстоит подробное рассмотрение этого инструмента. Для отображения (просмотра) справочного руководства используется специальный HTML Help Viewer, который в своей работе использует стандартные средства Web-браузера (Internet Explorer). Благодаря новому подходу расширяются стандартные возможности описания раздела справки. Разделы справки теперь могут содержать все элементы, присущие Web-страницам - гиперссылки, script-код, DHTML, элементы ActiveX, графические элементы, аудио и видео.

    Перечислим инструментальные средства, составляющие Microsoft HTML Help и используемые при создании справочного руководства:

  • HTML Help Workshop (hhw.exe) - средство, позволяющее создавать как отдельные файлы, являющиеся частями справочной системы, так и объединять все части в единое целое - законченную справочную систему. Элементы справочной системы, как правило, хранятся в отдельных файлах и могут быть разного типа. К ним относятся HTML - файлы с разделами справочной системы, файл с таблицей содержания, файл с индексами, файлы с рисунками и другими мультимедийными элементами, вспомогательные файлы, наконец, файл проекта, хранящий всю информацию о частях справочной системы. Если говорить о том, в каком виде создается справочное руководство, то здесь есть две основные возможности. Инструмент HHW позволяет скомпилировать справочную систему в виде единого файла (.chm), подобно компилируемому Windows Help файлу (.hlp). Другая возможность состоит в создании специального Web-узла справки.
  • HTML Help ActiveX (HHCtrl.ocx) - элемент управления, организующий навигацию по справочной системе и поддерживающий функциональность вторичных окон. Одним из методов этого элемента является функция HtmHelp, реализующая многие из возможностей этого элемента. Эту функцию, как функцию API в ряде случаев приходится вызывать в программном коде lдля организации выдачи контекстных справок. Подробно эти вопросы будут рассмотрены в следующей лекции.
  • HTML Help Java applet (HHCtrl.class) - альтернативный элемент управления, используемый вместо предыдущего элемента ActiveX, когда предпочтение отдается языку Java.
  • Microsoft HTML Help Image Editor (Flash.exe) - средство, позволяющее выполнять различные операции с графикой.
  • HTML Help Viewer - уже упоминавшееся средство, предназначенное для отображения справочной системы со всеми многочисленными возможностями доступа к ней.
  • HTML Help compiler - компилятор, позволяющий справочное руководство, состоящее из различных файлов, скомпилировать в один специальный файл с уточнением ".chm", сжав, при этом, используемую информацию. Более того, компилятор способен выполнять и обратную операцию, позволяя декомпилировать chm-файл и получить файлы, хранящие отдельные элементы справочной системы.
  • HTML Help executable program - программа, предназначенная для запуска и выполнения справочного руководства. Получив справочное руководство в виде специального скомпилированного файла, необходимо, конечно, иметь и программу, которая может выполнить этот файл.
  • Описание возможностей HTML Help Workshop

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

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

  • 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.com\library\default.asp?URL=\library\tools\htmlhelp\chm\hh1start.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 предполагает первоначальное создание разделов, поскольку при создании пунктов оглавления необходимо сразу связывать их с уже существующими файлами разделов. Тем не менее, давайте танцевать от печки. Вот как выглядит спроектированное мной оглавление (таблица содержания) нашей будущей справочной системы:

    Microsoft HTML Help
    	Введение
    	Создание справочного руководства
    		Разделы
    		Поиск
    	Разное
    		Рисунки
    		Ссылки
    Answer Wizard
    	Вопросы и Office Assistant

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

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

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

    Создание таблицы содержания

    Теперь, когда созданы разделы справочного руководства, можно приступить и к созданию файла, хранящего таблицу содержания (оглавление) нашего руководства. До этого этапа сама система HTML Help Workshop нам была не нужна, так как файлы разделов создавались в среде FrontPage, где возможности по созданию HTML -файлов гораздо шире. Но теперь, при создании таблицы содержания, необходимо войти в среду HTML Help Workshop. Главное меню, как обычно, содержит пункт File и работа, как обычно, начинается с того, что создается новый файл. Вот как выглядит диалоговое окно New, открываемое при выборе соответствующего пункта из меню File, позволяющее создавать в HTML Help Workshop файлы разного типа:

    (рис 8.1) Начальный шаг в процессе создания оглавления справочного руководства

    Для создания таблицы содержания открывается соответствующее диалоговое окно:

    В этом окне главное меню системы осталось без изменения, но слева появилась инструментальная панель с кнопками. Верхняя кнопка(рис 8.2) показывает свойства таблицы содержания. Еще две кнопкиипозволяют соответственно редактировать элемент оглавления или удалить его. Главную функциональную роль играют две кнопки -"heading" и "page". На первой изображен значок папки -, на второй - страницыЭти кнопки задают два уже упоминавшихся типа элементов оглавления - книг и страниц. Если на очередном этапе создания оглавления мы хотим задать книгу, в которой будут располагаться страницы и, возможно, другие книги, то выбирается кнопка "heading", в противном случае - "page".

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

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

    (рис 8.3) Связывание пункта оглавления с файлом, содержащим соответствующий раздел руководства.

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

    В случае, когда предполагается получать контекстные справки по тем или иным разделам, необходимо выполнить дополнительную работу. Суть этой работы состоит в том, что в справочное руководство включаются еще два раздела - MAP и ALIAS, позволяющие с каждым разделом связать числовой и символьный идентификатор. Техника вызова конкретного раздела справочного руководства, основанная на знании, прежде всего, числового идентификатора - HelpContextID - широко используется в работе с документами Office 2000. Эти вопросы будут подробно обсуждаться в следующей лекции. Сейчас же отмечу, что в тех случаях, когда справочное руководство вызывается, как единое целое, создание этих разделов не является обязательным.

    Построение файла проекта

    Можно начинать создавать проект на пустом месте, когда никаких компонент еще нет. Но можно поступить так, как сделал я в данном примере, приступая к созданию файла проекта, когда значительная часть информации, необходимая в проекте, уже создана. Для создания файла проекта, также как и для любых файлов, создаваемых в среде HHW, в меню File нужно выбрать пункт New, а затем в появившемся окне выбрать нужный тип создаваемого файла. Соответствующий Мастер ведет нас на всех этапах создания проекта. Вот как выглядит диалоговое окно на первом шаге работы Мастера:

    (рис 8.4) Начальный шаг создания проекта "Справка о справке"

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

    (рис 8.5) Результат компиляции проекта "Справка о справке"

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

    Теперь первый вариант задуманного нами справочного руководства создан, - он хранится в откомпилированном файле с уточнением ".chm". Его можно просмотреть его в специальном обозревателе HTML Help Viewer, который, как мы говорили, использует компоненты Internet Explorer, хотя и не совпадает с ним полностью. Просмотреть справочное руководство непосредственно в HHW можно двояко, либо щелкнув по кнопке, расположенной на инструментальной панели, либо вызвав из пункта Test главного меню команду HtmlHelp API. В последнем случае используется уже упоминавшаяся функция HtmlHelp, входящая в состав элемента HTML Help ActiveX. Когда используется этот способ, то в открывающемся диалоговом окне следует выбрать команду HH_DISPLAY_TOPIC, позволяющую просматривать скомпилированный файл с уточнением ".chm"или любой из его разделов, указав имя соответствующего HTML-файла. Первый способ тестирования справочного руководства, конечно же, проще, но второй более универсален, поскольку обращение к функции API -может быть выполнено при необходимости и в процедуре, разработанной программистом.

    Пришла пора взглянуть на то, как выглядит созданное справочное руководство:

    (рис 8.6) Справочное руководство "Справка о справке" и его оглавление

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

    Рисунки и ссылки

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

    Рисунки способствуют пониманию сложных понятий и потому часто используются в справочных системах. В разделе "Рисунки" показано отображение рисунков, представленных пятью наиболее употребительными графическими форматами - wmf, gif, jpeg, bmp и png. Все эти форматы отображаются без всяких помех. Вот как выглядят часть из отображаемых рисунков:

    (рис 8.7) Отображение рисунков в справочной системе

    Хотя, как видите, рисунки разных форматов отображаются без проблем, но хочу напомнить, что многое зависит и от того, в каком Редакторе создан файл с рисунками. Вначале я создал файл с рисунками в приложении Word. Этот файл без проблем отображался в Internet Explorer, однако Viewer системы HHW не отображал рисунки, поскольку не понимал тегов, созданных в приложении Word. Напомню, что в этом приложении рисунки помещаются в коллекцию Shapes и им не соответствуют теги Image. Никаких проблем с рисунками не возникает, если соответствующий раздел подготовлен в приложении FrontPage, возможно, путем копирования соответствующего документа Word.

    Поговорим теперь о ссылках - еще одном важном элементе разделов справочной системы. В хорошей справочной системе разделы связаны ссылками, так что, зацепившись за один раздел, можно пройти по цепочке связанных разделов, получив всю нужную информацию. Нет никаких проблем создания гиперссылок в том же Редакторе FrontPage. Источником ссылки (якорем) может быть любое слово, фраза или рисунок, а целью (URL) может быть имя файла, задающего раздел справочной системы или адрес в Internet. Заметьте, что в приложении FrontPage можно указать адрес любого файла, но в справочной системе будут правильно работать ссылки только на разделы этой системы. В нашем примере гиперссылки появляются в нескольких разделах, что позволяет переходить из раздела в раздел. Большинство ссылок сосредоточено в разделе "Ссылки":

    (рис 8.8) Раздел "Ссылки" справочного руководства

    Здесь есть различные ссылки, как локальные - на разделы справочной системы, так и глобальные, в частности, на домашнюю страницу Microsoft. В качестве якорей используются как фразы, так и рисунок совы, вставленный в раздел. Взгляните, как работает ссылка на страницу Microsoft:

    (рис 8.9) Выход в Internet из справочной системы

    Таким образом, можно существенно расширить возможности справочной системы, поскольку не найдя нужной информации в ее разделах, можно перейти в Internet и попытаться найти там нужные сведения, например, на соответствующем узле Microsoft. Заметьте, что страницы Internet отображаются в окне справочной системы, что означает, что они просматриваются с помощью Viewer, а не Internet Explorer.

    Хочу обратить внимание на одну важную особенность Viewer, - все-таки его возможности ограничены в сравнении с Internet Explorer. Он, в частности, не понимает русского языка и потому нельзя использовать в гиперссылках русские имена файлов. Так что есть серьезное ограничение - имена файлов, задающих разделы справочного руководства, должны быть в латинице, чтобы не было проблем со ссылками на эти разделы.

    Несколько точек зрения на одно справочное руководство

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

  • показать возможность нескольких способов структуризации информации, представленной в справочном руководстве;
  • показать, как можно модифицировать готовое справочное руководство, добавляя в него новые разделы и меняя таблицу содержания.
  • Чтобы выполнить намеченные модификации, потребовалось создать новый HTML-файл с разделом, описывающим суть новой книги, а затем в среде HHW добавить в проект этот файл и модифицировать оглавление руководства. Как и ранее, файл был создан в среде FrontPage, простым копированием части текста данного параграфа. Созданный файл с именем "New View " был сохранен в каталоге нашего проекта. Перейдя затем в среду HHW, я добавил этот файл в проект. Для этого на вкладке "Project" есть специальная кнопка, щелчок по которой открывает окно, в котором в проект можно добавлять и удалять файлы разделов:

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

    (рис 8.11) Справочное руководство "Справка о справке" после модификации

    Проблема поиска и создание индексов

  • По содержанию.В этом случае нужный раздел отыскивается путем просмотра оглавления справочного руководства.
  • По индексу.С каждым разделом связывается некоторое множество индексов (ключевых слов или фраз). Задавая или выбирая индекс, можно получить все темы, связанные с этим индексом.
  • Полнотекстовый поиск.Очень мощное стандартное средство поиска, позволяющее просмотреть содержание всех разделов справки и отобрать те из них, которые содержат ключевую фразу, заданную для поиска.
  • Избранное.Специальный каталог, хранящий избранные, наиболее часто используемые разделы справочного руководства.
  • Проблема поиска нужной информации в ворохе существующих документов является одной из центральных проблем, стоящих перед программистами. Microsoft многое сделала для ее решения на серверной стороне, когда структурированные или неструктурированные данные хранятся в хранилищах данных MS SQL Server или Web Store в Exchange Server. Специальные средства Index Server позволяют проводить индексацию хранящейся информации. Но, как видите, многое можно сделать и на клиентской стороне. Инструментарий HHW позволяет структурировать множество файлов, организовать их в виде справочного руководства и использовать различные средства поиска нужной информации.

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

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

    Давайте перейдем к детальному рассмотрению того, как создается файл индексов в среде HHW. Здесь есть две возможности:

  • Можно создавать индексы на уровне справочного руководства, непосредственно добавляя ключевые слова (фразы) в индексный файл. Понятно, что в этом случае необходимо указывать, с каким разделом или разделами связаны эти указатели.
  • Можно добавлять ключевые слова непосредственно в каждом разделе. При этом они автоматически будут переноситься в индексный файл.
  • Вне нашего рассмотрения остается способ создания индексов в ситуации, когда справочное руководство создается в виде Web-узла.

    Создание пустого индексного файла

    Начнем с того, что создадим пустой индексный файл, следуя обычной технологии создания файлов в среде HHW. Отметим, что среди возможных типов создаваемых файлов есть и тип "Index". Можно также щелкнуть вкладку Index, после чего появится диалоговое окно с предложением создать индексный файл, если он еще не был создан. Если щелкнуть нужные кнопки, указать имя индексного файла, то такой, пока пустой файл будет создан. В среде HHW будет открыта вкладка Index, и ее интерфейс во многом схож с интерфейсом вкладки Contents, открываемой при создании таблицы содержания. Почти все кнопки, появляющиеся на левой инструментальной панели, нам уже знакомы и выполняют схожие операции. Вместо двух кнопок Heading и Page появилась одна новая кнопка для задания указателей -. Если щелкнуть по ней, то появится серия диалоговых окон, позволяющая задать ключевое слово или фразу и связать с этим указателем один или несколько разделов. Тем самым реализуется первый способ задания указателей на уровне справочного руководства.

    Первый способ создания указателей

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

    (рис 8.12) Создание индексов при открытой вкладке Index

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

    (рис 8.13) Задание ключевой фразы

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

    (рис 8.14) Связывание индекса с разделом справочного руководства

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

    (рис 8.15) Указатели в справочном руководстве "Справка о справке"

    В нашем руководстве появилась наряду с вкладкой "Содержание" еще одна вкладка "Указатель". Стоит только в окне ввода начать печатать ключевую фразу, как списке указателей выбирается ближайший указатель, совпадающий с началом печатаемой фразы. Выбрав требуемый указатель из списка, достаточно нажать командную кнопку "Показать", чтобы открылся требуемый раздел руководства. Если указателю соответствует несколько разделов, то будет предложен список со всеми возможными разделами, из которого и предстоит сделать окончательный выбор:

    (рис 8.16) Выбор раздела

    Хочу еще раз отметить достоинство предлагаемого инструментария, - справочное руководство, построенное с его помощью, имеет интерфейс, хорошо знакомый пользователям, привыкшим работать в среде Office 2000.

    Модификация индексного файла и второй способ создания указателей

    Также как достаточно просто добавить новое содержание в справочное руководство, изменить его оглавление, также просто модифицировать индексный файл в процессе работы со справочником. Этим мы сейчас и займемся, добавив новые индексы. Чтобы задача была более интересной, мы будем добавлять индексы вторым способом, работая непосредственно с конкретным разделом. Хотя и первый способ создания указателей хорош, и модификацию индексного файла можно проводить аналогично процессу его первоначального создания, но иногда разумно на этом этапе работать с каждым отдельным файлом. Следует также отметить, что второй способ применяется всегда, когда в разделы справочного руководства вставляются ссылки специального типа, так называемые Klinks (Key Links). Эти ссылки позволяют легко переходить из одного раздела в другой. Но поскольку и гиперссылки выполняют эту же работу, то я не буду останавливаться на подробном изложении сути ссылок типа Klinks.

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

    Рассмотрим действия, которые необходимо предпринять, чтобы задать указатели таким способом:

  • Прежде всего, нужно установить новое свойство проекта, указывающее компилятору необходимость выбора ключевых слов из HTML -файлов. Для этого на вкладке "Project" необходимо выбрать уже упоминавшуюся кнопку, открывающее окно свойств проекта. В этом окне следует выбрать вкладку Files и включить флажок "Include keywords from HTML files"(рис 8.17) Включение нового свойства проекта
  • На следующем шаге открывается файл, в котором и будут задаваться ключевые слова, добавляемые затем в индексный файл. Открытие файла раздела, как, впрочем, и любого файла, являющегося частью проекта, выполняется обычным способом через пункт меню или командную кнопку Open. Файл открывается как HTML -файл. Важно после открытия файла поместить курсор в тело этого файла, например, сразу после тега <body>, но не перед ним.
  • В главном меню Edit следует выбрать команду Compiler Information, после чего появится соответствующее диалоговое окно, в котором можно поочередно добавлять ключевые слова, используя командную кнопку Add. В окне добавления можно сразу добавить последовательность ключевых слов или фраз, разделяя их символом ";" (точка с запятой).(рис 8.18) Добавление ключевых слов в HTML -файле раздела
  • По завершении процесса добавления (щелчок кнопки OK) в HTML -файл вставится, как уже говорилось, тег <Object>. Взгляните, как выглядит среда HHW в процессе работы с открытым файлом раздела. В правом окне, где показан HTML-код раздела, можно увидеть сразу после тега <body> добавленный тег <Object>, параметры которого содержат добавленные ключевые слова.(рис 8.19) HTML-код раздела с добавленным тегом Object
  • Аналогичным образом можно добавить ключевые слова в другие файлы разделов, после чего завершить этот процесс перекомпиляцией проекта. Не забудьте только перед повторной компиляцией закрыть справочную систему, если она была открыта, поскольку в противном случае компиляция не будет выполняться и, что хуже, не появится предупреждающее сообщение об этом прискорбном факте
  • В заключение взгляните на обновленное справочное руководство, где в списке указателей можно увидеть вновь добавленные ключевые слова - "Internet" и "Нахождение справки в Internet".

    (рис 8.20) "Справка о справке" с модифицированным множеством указателей

    На этом завершается рассказ о добавлении указателей в справочное руководство.

    Включение полнотекстового поиска и папки "Избранное"

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

    Инструментарий HHW дает возможность предложить пользователям справочного руководства всю мощь полнотекстового поиска. Более того, есть возможность выбрать один из двух вариантов полнотекстового поиска - базовый или расширенный. В базовом варианте поиск ведется на точное соответствие слов или фраз. В расширенном варианте реализован поиск по образцу, выражение, задающее образец, может включать специальные символы, применяемые в таких случаях, например "?", заменяющий любой символ, или "*", заменяющий любую последовательность символов. В расширенном варианте появляются и другие возможности, которые мы рассмотрим чуть позже. Сейчас же упомяну, что в случае большого справочного руководства можно ограничить поиск, задав специальный ограничительный список слов (full-text search stop list). В этот список, обычно, включаются общеупотребительные слова, которые вряд ли являются предметом поиска.

    Рассмотрим, как можно включить два варианта поиска - базовый и расширенный.

    Базовый вариант полнотекстового поиска

    Базовый вариант поиска включается совсем просто. В уже упоминавшемся окне свойств проекта следует выбрать вкладку Compiler и включить флажок "compile full-text search information". После компиляции в справочное руководство добавится новая вкладка "Поиск". Пользователь, выбравший эту вкладку, сможет задавать слово или фразу для поиска, и система найдет все разделы, в тексте которых содержится искомая фраза. В процессе поиска, правда, не будут доступны те возможности, которыми обладает расширенный полнотекстовый поиск.

    Расширенный вариант полнотекстового поиска

    Расширенный вариант поиска включается также достаточно просто. Здесь есть одна тонкость. Это свойство устанавливается не как свойство проекта, а как свойство окна справки, в котором отображается справочная система. Возможность определения в системе HHW окна справки - окна, в котором отображается справочное руководство и контекстные справки, это отдельная тема. Пока, не вдаваясь в детали, скажу только, как можно включить расширенный поиск. При выбранной вкладке "Project" нужно щелкнуть кнопку(Add/Modify window definitions), расположенную на левой инструментальной панели. В появившемся диалоговом окне нужно задать имя окна, - это может быть любое имя. После нажатия кнопки "OK" в следующем диалоговом окне следует выбрать вкладку "Navigation Pane" и включить флажок "Search", если он еще не включен, и связанный с ним флажок "Advanced", который и задает расширенный поиск.

    (рис 8.21) Включение расширенного полнотекстового поиска и папки "Избранное"

    Находясь в этом окне, есть смысл включить и еще один флажок "Favorites tab", задающий папку "Избранное". Тогда окно справки получит еще одно дополнительное свойство - оно будет содержать вкладку "Избранное" и пользователь получить возможность работы с папкой, содержащей его любимые темы справочного руководства.

    Добавив в проект новые свойства, как всегда, необходимо перекомпилировать проект и получить справочное руководство, в котором реализованы новые возможности поиска разделов.

    Взгляните на рисунок, задающий окончательный вариант справочного руководства "Справка о справке".

    (рис 8.22) Расширенный поиск в справочном руководстве

    Возможности расширенного поиска

    Остановимся теперь на тех дополнительных возможностях, которыми обладает расширенный полнотекстовый поиск. Расширенный полнотекстовый поиск позволяет:

  • Включать логические операции в поисковую фразу, рассматривая ее, как некоторое логическое выражение.
  • Задавать поисковую фразу некоторым шаблоном, которому соответствует множество фраз в искомых текстах. При этом используемый синтаксис шаблонов типичен для систем поиска.
  • Задавать ограничение на область поиска, ограничивая, например, ее результатами предыдущего поиска.
  • На предыдущем рисунке можно видеть, что в качестве искомой фразы задано булево выражение "Workshop AND Viewer". В этой фразе "AND" играет роль логической связки. В результате поиска найдены все разделы, в которых встречаются оба эти слова. Один из таких разделов отображен в правом окне. В булевых выражениях можно использовать и другие логические связки - OR, NOT, NEAR. Если задать в качестве образца поиска взятую в кавычки фразу "HTML HELP", то будут найдены разделы, в которых встречается именно это сочетание слов. В случае, когда кавычки будут опущены, будут найдены разделы, в каждом из которых будет найдено любое из этих слов так, как будто они объединены связкой OR.

    Поисковая фраза может быть задана некоторым шаблоном, использующим специальные символы, обычно применяемые в подобных шаблонах. Если задать в качестве образца поиска "Редак*", то будут найдены все слова, начинающиеся с "Редак", - "Редакция", "Редактором" и другие. Заметьте, что при поиске имеет значение регистр (большие или малые буквы).

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

    Заметьте, что русский язык нормально воспринимается, как в текстах справочного руководства, так и в поисковых фразах.

    Папка "Избранное"

    Я уже рассказал о том, как включить в справочное руководство возможность работать с папкой "Избранное". В эту папку обычно помещают часто используемые разделы. Работать с ней очень удобно при больших руководствах и наличии любимых тем.

    Несмотря на то, что рассмотрены далеко не все возможности инструментария Microsoft HTML Help, поставленная цель достигнута, - пройдены все этапы создания справочного руководства, обладающего полным набором возможностей по поиску нужных разделов. В завершении рассказа остался последний штрих, играющий, впрочем, не малое значение. До сих пор вся демонстрация работоспособности справочного руководства выполнялась внутри самой системы. Осталось показать, как подключить справочное руководство к документу Office 2000, чтобы вызывать его так, как обычно вызывается Справка - нажатием кнопки или выбором пункта меню

    Определение окна справки

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

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

    Я напомню, для того чтобы дать собственное определение окна справки и задать его свойства необходимо на вкладке "Project" щелкнуть кнопку(Add/Modify window definitions), расположенную на левой инструментальной панели. В процессе диалога, первым делом нужно будет определить имя окна, а затем установить его свойства, поочередно выбирая вкладки, управляющие этим процессом. Вот как выглядит диалоговое окно Window Types, позволяющее определять свойства окна, открытое на вкладке "General".

    (рис 8.23) Определение свойств окна справки

    Это же окно, открытое на вкладке "Navigation Pane", ранее было показано на рис. 21. Всего вкладок 7 и каждая из них позволяет определить те или иные свойства окна. Перечислим эти вкладки и дадим их краткие характеристики:

  • General - позволяет добавить или удалить новое окно в справочное руководство. Замечу, что с одним руководством можно связать несколько окон, которые будут открываться в подходящий момент. Среди этих окон одно из них будет окном, открываемым по умолчанию. Такое окно всегда имеется, даже если окно справки и не определяется в среде HHW. Кроме командных кнопок Add и Remove, выполняющих операции добавления и удаления окна справки, в диалоговом окне этой вкладки можно задать заголовок окна справки.
  • Navigation Pane - позволяет задать свойства подокна (Pane) навигации. Если не задавать определение окна справки, то по умолчанию оно будет появляться, как окно с тремя подокнами. В левом окне отображается структура справочного руководства - таблица содержания, в правом - текст выбранного раздела, а верхнее горизонтальное окно представляет окно навигации (Navigation Pane). Именно в этом окне отображаются вкладки и различные инструментальные кнопки, доступные пользователю при работе в окне справки. Как я уже говорил ранее, эту вкладку нужно открыть, чтобы добавить к справочному руководству возможность полнотекстового поиска, расширенного полнотекстового поиска и папку "Избранное". Хотя не только эти свойства можно установить при работе с этой вкладкой. В частности, здесь устанавливается вкладка, открываемая по умолчанию.
  • Buttons - позволяет добавлять или удалять различные инструментальные кнопки, появляющиеся в окне навигации, в частности, такие кнопки, как Show/Hide, Print, Forward и Back. Эти кнопки выполняют функции, общепринятые для кнопок с таким названием, так что я останавливаться на этом не буду.
  • Styles - вкладка с многочисленными флажками, определяющими стиль окна. В частности можно добавить к окну кнопки минимизации и максимизации окна, можно включить флажок "PopUp", сделав окно справки всплывающим.
  • Extended Styles - еще одно множество флажков, позволяющее включать такие свойства, как, например, прозрачность или выравнивание текста по правому краю.
  • Position - позволяет задавать позицию окна.
  • Files - позволяет задать ряд файлов, связанных со справочным руководством, например, файл с таблицей содержания и файл раздела, открываемый по умолчанию.
  • Вызов справочного руководства

    Ранее уже говорилось, что в состав Microsoft HTML Help входит HTML Help executable program (hh.exe) - программа, предназначенная для запуска и выполнения справочного руководства, представленного в виде скомпилированного chm - файла. Хотя есть и другие возможности, но проще всего использовать именно эту программу для организации вызова созданного и откомпилированного справочного руководства. Взгляните на тестовый документ, в котором наш справочник вызывается по щелчку специально созданной командной кнопки:

    (рис 8.24) Тестовый документ, вызывающий "Справку о справке"

    Макрос, вызываемый в ответ на щелчок командной кнопки, достаточно прост. Вот его текст:

    Public Sub CallHelp()
    	Dim Path As String, Name As String, FullPath As String
    	Dim Res As Double
    	Path = "E:\O2000\Book2\Cd\ChCreateHelp\"
    	Name = "Справка о справке.chm"
    	FullPath = Path  Name
    	'Вызов программы HH.exe, запускающей справочное руководство,
    	'представленного в виде скомпилированного chm - файла.
    	'Путь к файлу передается в виде параметра программе HH.exe
    	Res = Shell("hh.exe "  FullPath, vbNormalFocus)
    End Sub

    Подведем итоги

    Инструментарий Microsoft HTML Help позволяет достаточно просто создать справочное руководство. Это руководство может быть частью программной системы (системы документов Office 2000), разработанной программистом. Это может быть и независимый справочник, позволяющий структурировать и объединить в одно целое множество разрозненных документов.

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

    Инструментарий HTML Help Workshop позволяет создать справочное руководство, включающее:

  • таблицу содержания руководства - его оглавление,
  • указатели - индексный файл, обеспечивающий быстрый доступ к разделам руководства;
  • полнотекстовый поиск, в том числе расширенный поиск.
  • Папку "Избранное", в которой можно хранить наиболее часто используемые разделы.
  • Справочное руководство представляется в виде скомпилированного chm-файла или может быть развернуто на Web-узле. Специальная программа - hh.exe позволяет открыть справочное руководство и работать с ним.

    Вернуться к учебному плану