Лекция № 31
Тема «Создание систем помощи и их внедрение в программы»
План
1. Виды справочных систем
2. Форматы справочников
3. Создание справки в формате HTML Help
4. Создание контекстной справки
5. Интеграция файла справки в приложение
1. Виды справочных систем
Справочная система с одной стороны, это часть программы (точнее, пользовательского интерфейса), с другой - замена бумажной программной документации. Конечная цель проектирования справочной системы - выбрать такой способ представления информации пользователю, при котором выдаваемая порция информации будет минимально необходимой для выполнения очередного действия.
Справочная система должна иметь иерархическую структуру. На нижнем ее уровне располагаются подсказки по отдельным элементам интерфейса, на верхнем - концептуальное описание программы.
Виды справок
- контекстная справка обеспечивает немедленную помощь пользователю, соответствующую текущему контексту работы с приложением, причем без нарушения этого самого контекста. В большинстве случаев она призвана ответить на вопросы типа «что это?» и «зачем это?». В большинстве случаев такая справка представляет собой краткое описание назначения отдельных элементов интерфейса (кнопок, команд меню, полей и т.д.). В соответствии со стандартами Microsoft контекстная справка может быть реализована несколькими способами:
- на основе команды Что это такое?;
- в виде всплывающих подсказок;
- на основе кнопки Справка;
- в виде сообщений в строке состояния;
- с помощью статического текста, отображаемого в диалоговых окнах у элементов управления.
Независимо от способа реализации к тексту контекстной справки предъявляются требования: он должен быть достаточно лаконичным и максимально конкретным;
- процедурная справка предоставляет пользователю сведения о том, как выполнить определенную операцию (шаг задания). Процедурная справка представляет собой описание последовательности шагов, необходимых для выполнения некоторой задачи пользователя. Для хранения и вывода на экран содержимого процедурной справки используются те же средства и форматы данных, что и для справочника.
По своей сути процедурная справка похожа на контекстную справку, поскольку необходимость в ней возникает при выполнении пользователем определенной задачи или шага задания. Соответственно, процедурная справка должна быть связана либо с определенным состоянием рабочей среды программы, или с конкретным диалоговым окном. Один из самых распространенных способов вызова процедурной справки основан на применении «горячей» клавиши (обычно F1) или кнопки Справка.
Как и контекстная подсказка, справочная информация в процедурной справке должна быть написана лаконично, но доходчиво. При этом она должна быть сформулирована в виде ответа на вопрос «Каким образом?», поскольку призвана помочь пользователю в выполнении конкретной задачи;
- справочник обеспечивает пользователю доступ к достаточно подробному описанию отдельных компонентов и/или функций программы.
- концептуальная справка содержит общие сведения о назначении, функциональных возможностях и технологии использования программы. Концептуальная справка носит существенно более общий характер, чем другие виды помощи, и не связана непосредственно с текущим состоянием рабочей среды пользователя и выполняемой им задачей.
Как правило, концептуальная справка содержит две основные части: описание соответствующей предметной области и обзор основных функциональных возможностей программы.
Вызов концептуальной справки обычно проводится через вкладку Содержание окна справки или (значительно реже) с помощью команд меню Справка.
Средства поддержки пользователя
Рассмотренные выше средства предназначены для предоставления пользователю оперативной помощи, то есть так или иначе эти средства являются контекстными и придают ему «конкретный ответ на конкретный вопрос». Несколько особняком стоит в их ряду справочник, разделы которого связаны непосредственно с текущим контекстом выполняемой задачи, но и он используется обычно в качестве развернутого «толкового словаря», а не «книги для чтения». Для тех приложений, которые реализуют полный перечень функций, средств оперативной поддержки пользователя вполне достаточно, чтобы помочь ему при возникновении трудностей. Однако для более сложных приложений, которые обычно именуются «интегрированными средами» или «пакетами», требуется создание для пользователей специальных средств обучения технологии работы. Перечень и способы реализации используемых в приложении средств обучения зависят от целого ряда факторов:
- назначения и уровня сложности приложения;
- характеристик потенциальных пользователей;
- времени, уделяемого на изучение приложения.
В рамках одного приложения могут использоваться различные средства обучения, которые относятся как ко всему приложению, так и к отдельным его частям. При этом пользователю должна быть предоставлена ??и свобода выбора средств обучения, и возможность игнорировать каждое из них.
К наиболее распространенным средствам обучения относятся:
- полезные советы, или в терминологии разработчиков локализованной версии MS Office - мастер подсказок
- подборка примеров, иллюстрирующих результаты применения приложения для решения различных задач;
- обзорный курс;
- электронный учебник.
2. Форматы справочников
Разумеется, чем больше справочного материала в распоряжении пользователя, тем спокойнее он должен себя чувствовать. Но многочисленность материалов порождает другую проблему: как обеспечить пользователю быстрый и удобный доступ к конкретной теме, к конкретному термину и т.д. Создание электронной документации уже несколько десятилетий базируется на технологии гипертекста. Одно из важнейших его достоинств - наличие интерактивных ссылок, позволяющих читателю перемещаться между темами почти в произвольном порядке. В настоящее время для создания электронных гипертекстовых документов применяются около десятка различных форматов, включая PDF (Portable Document Format), RTF (Rich Text Format), DOC (Document Word) WinHelp (Windows Help), а также целое семейство языков гипертекстовой разметки, самыми популярными из которых можно считать HTML (Hypertext Markup Language) и XML (Extensible Markup Language). Сюда же следует добавить и специализированный формат СНМ (Compiled HTML). Однако далеко не все из существующих форматов пригодны для создания справочников. Причины разные: одни форматы не обеспечивают приемлемую компактность документа, другие не имеют достаточную функциональность и выразительность, третьи требуют установки на компьютеры пользователей дополнительного программного обеспечения.
Доступ к справочнику может быть реализован несколькими способами. Самый распространенный из них - явный вызов с помощью соответствующей команды меню Справка, но возможны также использование специальной кнопки на панели инструментов или вызов через контекстное меню значка конкретного объекта.
Итак, для того чтобы формат электронного документа был пригоден для создания справочника, он должен обладать следующими свойствами:
- обеспечивать приемлемую компактность итогового документа;
- иметь достаточную функциональность (в частности, поддерживать полнотекстовый поиск)
- поддерживать возможность представления мультимедийной информации (графики, видео, звука)
- не требовать установки на компьютеры пользователей дополнительного программного обеспечения;
- достаточно легко интегрироваться с программным кодом создаваемого приложения.
Для приложений под Windows, на сегодняшний день большинству из перечисленных выше требований соответствуют три формата: WinHelp, HTML, HTML Help (CHM).
Формат WinHelp
Справочные системы в формате WinHelp появились практически одновременно с созданием первых приложений для Windows 3. *, получив с тех пор широкое распространение и признание среди большого числа разработчиков программного обеспечения под Windows. Немалую роль в этом сыграла наличие достаточно удобного и бесплатного инструмента для разработки справочников в формате HLP - Microsoft Help Workshop.
Формат WinHelp позволяет готовить выходной текстовый материал для справочника в любом текстовом редакторе, что, в свою очередь, позволяет привлекать к работе специалистов в соответствующей предметной области без дополнительной подготовки.
Справочник в формате WinHelp существенно компактнее аналогичного по объему документа в формате DOC и компактнее выходного файла в формате RTF.
Специальная программа просмотра HLP-файлов (WinHelp) входит в состав Windows, не требует установки и при необходимости может быть просто скопирована на компьютер пользователя (файл WINHLP32.EXE имеет небольшой размер - всего около 300 Кбайт).
Формат WinHelp имеет самую широкую функциональность, в том числе: возможностью иерархической организации документа в сочетании с удобными средствами навигации; поддержкой графики, видео и звука; возможностью полнотекстового поиска по ключевым словам и тематического поиска по разделам, возможностью создания индексной базы данных и многими другими.
Справочник в формате WinHelp представляет собой файл специального формата с расширением .hlp. Такой файл создается путем компиляции предварительно подготовленного и специальным способом размеченного текстового файла в формате RTF. Компиляцию выполняют с помощью соответствующих инструментальных средств, в частности, с помощью программы Help Workshop, входящий в состав пакета Visual Studio и доступной на сайте Microsoft.
Справочник на языке HTML
Справочник на языке HTML - это обычная папка сайта с несколькими страницами. Данный тип имеет следующие достоинства:
- независимость от платформы, на которой работают потенциальные пользователи;
- можно использовать при создании справочника все те выразительные средства, которые поддерживаются в языках HTML и Dynamic HTML, в том числе включение на страницах справочника различных элементов управления и связанных с ними сценариев (скриптов);
- стилевое оформление страниц справочника на основе технологии CSS (Cascading Style Sheets);
- наполнение страниц справочника различными мультимедийными элементами (анимацией, Flash-роликами, видео, звуковым рядом);
- удобная интеграция с удаленной (сетевой) службой технической поддержки от компании-производителя программного обеспечения;
- создание HTML-справочника спасает многих авторов от необходимости освоения новых инструментов и технологий.
Недостатки HTML-справочников:
- авторы привносят в HTML-справочник элементы индивидуального дизайна и специфической функциональности. А это требует от пользователей определенных усилий на освоение приемов работы с таким справочником;
- для просмотра HTML-справочника нужно дополнительное программное обеспечение - интернет-браузер;
- некоторые пользователи отключают в браузерах загрузку графики, звука, запрещают сценарии, Java-апплеты, таблицы CSS и т.д., причем вряд ли такой пользователь захочет менять настройки, чтобы «полистать» справочник;
- совсем не обязательно разработчик справочника является хорошим веб-дизайнером, способным унифицировать верстку справочника для всех популярных браузеров, но каждый из них имеет определенные особенности в интерпретации HTML-документов - в результате часть пользователей может увидеть на экране не совсем то, что предвидел автор;
- любой HTML-справочник - это совокупность достаточно большого числа самостоятельных и разнотипных файлов. Это не только затрудняет распространение справочника среди пользователей, но и снижает его надежность; потеря или повреждение хотя бы одного из фалов приведет к тому, что часть справочной информации окажется недоступной пользователям. Отследить вовремя такую ??потерю бывает очень сложно.
Формат Microsoft HTML Help
Формат HTML Help обеспечивает объединение основных достоинств рассмотренных выше форматов. С одной стороны, он поддерживается операционной системой Windows, может считаться стандартным и практически не требует дополнительного изучения со стороны пользователя. С другой стороны, он позволяет применять при создании справочника практически все выразительные возможности языка HTML
Средство просмотра справочника в формате HTML Help базируется на компонентах интернет-браузера Internet Explorer, поэтому отсутствие на компьютере пользователя указанного программного средства делает работу со справочником невозможной. Кроме того, все пользовательские настройки браузера наследуются и программой HTML Help Viewer.
Формат HTML Help можно считать на сегодняшний день самым распространенным форматом справочников для Windows-приложений.
При стандартной реализации справочника в формате HTML Help его содержимое отображается на экране в одном окне, левая часть которого отведена под содержание, а правая - под информацию
Исходным материалом, «сырьем» для создания справочника служат HTML-файлы. При этом каждый раздел справочника генерируется на основе отдельного HTML-файла. В свою очередь, выходной HTML-файл может содержать любые объекты (сценарии, элементы ActiveX, мультимедийные элементы). Гиперссылки, имеющиеся в исходном HTML-файле, могут указывать не только на аналогичные файлы-разделы, но и на внешние ресурсы (например, на веб-страницы в Интернете, адреса электронной почты, FTP-архивы, группы новостей и т.д.) .
После компиляции набора исходных HTML-файлов, справочник в формате HTML Help представляет собой единый файл с расширением СНМ. Размер такого файла оказывается существенно меньше суммарного объема исходных HTML-файлов и связанных с ними внешних файлов.
3. Создание справки в формате HTML Help
Автором формата HTML Help является компания Microsoft. Она распространяет бесплатную утилиту для создания файлов помощи - HTML Help Workshop.
Как уже говорилось выше, данный вид справки основан на использовании WEB-страниц, поэтому сначала необходимо создать все необходимые страницы для разделов справки, разместить на них всю необходимую информацию, поместить все страницы и связанные с ними внешние файлы (рисунки, звуки, анимацию и т.п.) в одну папку.
Утилита HTML Help Workshop имеет ряд преимуществ:
- генерация *.CHM файлов помощи с одновременной генерацией файла содержания и файла индекса для поиска по ключевым словам;
- имеет встроенный HTML-редактор на тот случай, если необходимо создать несуществующий раздел справки прямо в среде;
- имеет встроенный текстовый редактор, который позволяет создавать контекстную справку;
- утилита может не только компилировать набор HTML-документов в один общий .CHM файл, но и выполнять обратную операцию: «раскладывать» .CHM файл на отдельные HTML файлы;
- возможно конвертирование систем помощи из старого формата WinHelp с сохранением содержания, индекса и полного оформления.
Для создания нового проекта предназначена кнопка Создать. При этом появляется окно, в котором можно указать вид создаваемого файла:
- Проект - создается новый файл проекта для системы помощи;
- Текст - создание обычного текстового файла;
- HTML - создание HTML-документа во встроенном редакторе;
- Содержание - создание файла Содержания;
- Указатель - создание индексного файла для полнотекстового поиска.
При выборе строки Проект запускается мастер по созданию файлов помощи, состоящий из нескольких шагов.
- на первом шаге будет предложено конвертировать существующий файл помощи из старого формата. Для выполнения данной операции необходимо установить флажок Конвертировать проект WinHelp и щелкнуть на кнопке Далее;
- на втором шаге будет предложено указать расположение и имя проекта для файла помощи;
- на третьем шаге можно указать, какие файлы проекта вы уже создали ранее и хотите их добавить в проект. Чаще всего заранее создаются только HTML документы, поэтому отметьте флажок;
- на четвертом шаге необходимо добавить в проект нужные файлы тех типов, которые вы отметили в шаге 3. Для корректной работы справки рекомендуется добавить только первый главный HTML файл. Другие будут добавлены вручную при проектировании;
- на последнем шаге просто щелкните на кнопке Готово.
После завершения работы мастера в левой части окна проекта будут отражены параметры вашего проекта, в частности язвк кодирования файла помощи (определяется кодированием HTML-документов). Для изменения каждого из параметров щелкните на нем два раза. В результате откроется окно свойств проекта, которое содержит основные команды для настройки свойств проекта. Это окно можно открыть с помощью кнопки Change Project Option, расположенной на панели инструментов в левой части окна (первая кнопка).
Добавление файлов в проект
Для добавления файлов в проект щелкните на кнопке Add/Remove Topic File (вторая кнопка). В окне можно как добавить новые файлы в проект (кнопка Добавить), так и удалить (кнопка Удалить).
Создание содержания
Для создания содержания щелкните на вкладке Содержание. Появится окно с запросом на создание нового файла или добавления существующего файла содержания. Выберите создание нового файла и укажите имя файла, разместив его в одной папке с проектом (файл будет иметь расширение .HHC).
Для добавления раздела щелкните на кнопке Insert a heading. В окне на вкладке Общие указывают название раздела. Если при выборе раздела предполагается отображения пояснения, то с помощью кнопки Добавить можно указать файл, который откроется при выборе раздела.
Для добавления темы справки нужно щелкнуть на кнопке Insert a page. Окно имеет такие же параметры, что и при создании разделов.
Для изменения каждого из пунктов содержания выделите его и щелкните на кнопке Изменить элемент. При редактировании элемента на вкладке Дополнительно появляется возможность изменить его значок с помощью счетчика Индекс рисунка.
Для удаления элемента выделите его и нажмите кнопку Удалить выделенный элемент.
На панели инструментов есть кнопки с изображениями стрелок, с помощью которых можно менять порядок следования пунктов справки, задавать уровни вложенности.
Создание указателя
Указатель позволяет пользователю находить в справке нужную информацию по ключевым словам. Процесс создания такого элемента файла помощи полностью похож на создание содержания.
Щелкните на вкладке Указатель. Появится окно с запросом на создание нового файла или добавления существующего файла. Выберите создание нового файла и укажите имя файла, разместив его в одной папке с проектом (файл будет иметь расширение .HHK).
Щелкните на кнопке Insert a keyword. Появится окно, в котором введите ключевое слово. С помощью кнопки Добавить укажите HTML-документ, связанный с данным ключевым словом. Если данное слово может соответствовать нескольким страницам, то с помощью кнопки Добавить добавьте все нужны.
Для изменения параметров каждого из ключевых слов выделите его и щелкните на кнопке Изменить элемент.
Для удаления ключевого слова выделите его и щелкните на кнопке Удалить выделенный элемент.
С помощью кнопок со стрелками можно указать расположение ключевых слов и их подчиненность.
Допускается связывать ключевое слово не с документу, а с другим ключевым словом. Для этого при добавлении или редактировании ключевого слова перейдите на вкладку Дополнительно и установите флажок Задать другое ключевое слово. Затем на вкладке Общие нажмите кнопку Добавить и в поле Файл или URL введите нужное ключевое слово (данное слово уже должно быть ранее описано).
Настройка вида окна справки
Для настройки параметров окна справки щелкните на кнопке Добавить/изменить определение окна. Появится окно, в котором нужно ввести имя окна (произвольное имя латинскими буквами). После этого появляется окно для настройки параметров.
На вкладке Общие можно указать заголовок окна.
На вкладке Рабочая область справки можно отобразить или скрыть панель инструментов в окне справки. В списке Вкладка по умолчанию можно указать, какая вкладка будет открыта по умолчанию в окне.
Вкладка Кнопки позволяет отобразить или скрыть кнопки на панели навигации.
Вкладка Расположение-Позиция позволяет задать размер окна. Если установить флажок Запоминать позицию окна, то справка будет запоминать свой последний размер, установленный пользователем. Для задания нужного размера окна можно щелкнуть на кнопке Авторазмер, растянуть окно до нужных размеров и щелкнуть ОК.
На вкладках Стили и Расширенные стили можно включить или выключить в окне дополнительные визуальные элементы.
Компиляция проекта
После настройки всех параметров проекта его можно откомпилировать. Для этого щелкните на кнопке Скомпилировать HTML файл. В появившемся окне щелкните OK. Полученный файл справки будет помещен в одну папку с проектом и иметь расширение .CHM
4. Создание контекстной справки
Контекстная справка - это справочный файл, в котором каждая тема справки имеет уникальный идентификатор и номер. Этот номер позволяет присваивать различным элементам программы (окнам, элементам управления и т.п.) конкретные разделы справки, что позволяет в процессе работы получать нужную информацию по использованию конкретного элемента или выполнения конкретной функции.
Для создания такого вида справки можно использовать созданный ранее проект, в котором нужно выполнить следующие действия:
- каждому разделу справки нужно присвоить уникальные имена. Для этого на вкладке Проект нажмите кнопку Информация управления HTMLHelp API. В окне на вкладке Псевдоним с помощью кнопки Добавить присвойте каждому разделу справки имя. Для этого вводят произвольное имя латинскими буквами и указывают связанный HTML документ;
- создаем заголовочный файл контекста. Для этого создайте новый файл с помощью кнопки Создать, выберите тип Текст. Данный файл имеет определенную структуру, в котором каждая строка оформляется так:
#define имя_раздела номер
Пример.
#define Razdel1 1
#define Razdel2 2
#define Razdel3 3
#define Razdel4 4
#define Razdel5 5
Сохраните файл в одну папку с проектом с расширением H;
- Добавьте созданный заголовочный файл в проект. Для этого щелкните на кнопке Информация управления HTMLHelp API. На вкладке Карта нажмите кнопку Имя файла и укажите созданный файл;
- Откомпилируйте проект заново.
Для проверки работы созданных контекстов выполните команду Проверка - HTMLHelp API. Добавить откомпилированный файл справки, в списке Команда выберите строку HH_HELP_CONTEXT, введите номер справки и нажмите кнопку Тест. Если все сделано правильно, то запустится файл помощи с открытым соответствующим разделом.
5. Интеграция файла справки в приложение
Сначала для проекта нужно задать файл помощи. Скопируйте файл справки в папку с проектом. В среде Delphi выполните команду Project-Options. На закладке Application в поле HelpFile укажите имя файла помощи, удалив путь к нему.
По умолчанию Delphi 7 не поддерживает работу с файлами помощи в формате *.chm. Для работы с такими файлами нужно использовать один из внешних модулей, например модуль stoHTMLHelp.pas. Данный модуль нужно скопировать в папку с проектом или в папку Lib среды Delphi.
В коде программы нужно подключить модуль stoHTMLHelp. После этого можно открывать как основной файл справки, так и отдельные ее разделы по контекстному номера.
Вызов основного файла справки
Для вызова файла справки используйте команду вида:
Application.HelpCommand(Help_Contents, 0);
Данную команду можно написать для пункт меню, который отвечает за вызов системы помощи.
Вызов раздела справки по контекстному номеру
Для вызова конкретного раздела можно использовать команду вида:
Application.HelpContext(номер_раздела);
Указывая нужный номер раздела, справочный файл будет автоматически открываться на соответствующем разделе.
Каждая форма, как и компоненты на ней имеют свойство HelpContext, в котором можно указать контекстный номер нужного раздела. Это позволяет при проектировании явно присвоить нужные разделы справки формам или компонентам на них. В этом случае при вызове справки требуется указать не конкретный номер, а значение свойства HelpContext активного элемента на форме, то есть команда вызова изменит свой вид:
Application.HelpContext(Screen.ActiveControl.HelpContext);
Данный код можно писать для события нажатия на клавишу F1. Например, реализуем вызов контекстной справки для формы.
Сначала включим обработку формой нажатий клавиш. Для этого для формы установим свойство KeyPreview = true. В событии формы OnKeyDown напишем код:
// если нажата клавиша f1
if Key = VK_F1 then
Application.HelpContext(Screen.ActiveControl.HelpContext);
Вопросы для самоконтроля
1. Какие системы помощи вы знаете? Дайте им характеристику.
2. Какие виды справок вам известны? В чем их преимущества и недостатки?
3. Опишите принцип создания обычной справки в формате * .chm (добавление файлов, создание содержания, настройки окна и компиляция).
4. Опишите процедуру создания контекстной справки? Как проверить работу контекстной справки в окне HTML Help WorkShop?
5. Опишите принцип внедрения созданного справочного файла в проект Delphi? Как использовать номера контекстных разделов справки в проект Delphi?