МИНИСТЕРСТВО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ ВОРОНЕЖСКАЯ ГОСУДАРСТВЕННАЯ ТЕХНОЛОГИЧЕСКАЯ АКАДЕМИЯ КАФЕДРА ИНФОРМАЦИОННЫХ И УПРАВЛЯЮЩИХ СИСТЕМ РАЗРАБОТКА СПРАВОЧНОЙ СИСТЕМЫ ДЛЯ ПРИЛОЖЕНИЙ В ФОРМАТЕ WINDOWS HELP Методические указания для выполнения лабораторной работы по дисциплине “Современные средства разработки программных продуктов” Для студентов специальности 210200 – “Автоматизация технологических процессов и производств” очной и заочной форм обучения Воронеж 2003 УДК681.3.07 Разработка справочной системы для приложений в формате Windows Help: Метод. указания к лаб. работе по дисциплине "Современные средства разработки программных продуктов"/ Воронеж. гос. технол. акад.; Сост. А.А. Хвостов, И.А. Хаустов. - Воронеж, 2003. – 20 с. Указания разработаны в соответствии с требованиями, предъявляемыми квалификационной характеристикой ГОС ВПО подготовки инженеров по специальности 210200. Они предназначены для закрепления теоретических знаний дисциплины цикла ЕН. Методические указания посвящены разработке справочной системы для приложения в формате Windows Help. Затрагиваются вопросы проектирования содержания, интерфейса и оптимизации справочной системы. Для студентов специальности 210200 очной и заочной форм обучения. Табл. . Ил. . Библиогр.: . Составители доценты А.А.ХВОСТОВ, И.А. ХАУСТОВ, С.Г. ТИХОМИРОВ Рецензент – профессор, д.т.н. Научный редактор профессор В.Ф. ЛЕБЕДЕВ Печатается по решению редакционно-издательского совета Воронежской государственной технологической академии © А.А. Хвостов, С.Г. Тихомиров, И.А. Хаустов, 2002 © Воронежская государственная технологическая академия, 2003 2 Создание справочной системы для приложения в формате Windows Help Цели работы: 1. Освоение методики построения справочных систем в формате Windows Help; 2. Освоение программных средств проектирования справочных систем. Порядок выполнения работы 1. Изучить методические указания. 2. Проделать пример, изложенный в методических указаниях. 3. Определить структуру справочной системы. 4. Создать файл проекта и содержания для своего приложения, откомпилировать и протестировать справочную систему. 5. Настроить Windows-приложение в среде Borland C++ Builder для работы с созданной справочной системой. 6. Оформить отчёт. 1. Назначение справочной системы Справочная система должна содержать информацию о том, для чего предназначено приложение, как использовать меню и диалоговые панели. Необходимо описать методику выполнения различных процедур, таких как копирование в Clipboard, редактирование документов или аналогичных. Хорошо спроектированная справочная система должна содержать глоссарий, систему поиска информации по контексту и графические иллюстрации. Вся необходимая информация должна быть всегда под руками. Например, если пользователь просматривает текст, описывающий функцию, ему может потребоваться пример использования этой функции или перечень имен других функций, так или иначе связанных с данным текстом. Для создания справочных систем используется специальный help-компилятор, входящий в состав SDK и других продуктов Microsoft, предназначенных для разработки приложений, например, Microsoft FoxPro for Windows или Microsoft Visual Basic. Пользователь работает со справочной системой при помощи приложения winhelp.exe, которое поставляется вместе с Windows. Программист также имеет доступ к средствам отображения Создание справочной системы для приложения в формате Windows Help 3 справочной информации. В его распоряжении имеется функция WinHelp, которая входит в программный интерфейс Windows. Средства создания и просмотра справочных систем встроены в операционную систему Windows. Благодаря этому пользователю достаточно лишь один раз научиться работать со справочной системой какого-либо одного стандартного приложения, и он без труда сможет работать со справочными системами всех других приложений Windows. Существует несколько путей создания файлов справки для Windows. Компания Microsoft предлагает двухэтапную процедуру разработки файлов справки на основе своих коммерческих и свободно распространяемых продуктов. Прежде всего, текстовый процессор Microsoft Word for Windows. Именно с помощью этого текстового процессора выполняется начальная подготовка текстовых и графических данных, которые будут содержаться в справочной системе. Сначала создаётся справочная система как обычный текстовый документ, включающий в себя специальные элементы, такие как скрытый текст, подстрочные сноски и т. п. Документ может содержать графические изображения и таблицы, стилевое и шрифтовое оформление. Созданный документ сохраняется в формате RTF. Это универсальный текстовый формат, который обычно используется как промежуточный для конвертирования между форматами различных текстовых процессоров. На следующем этапе исходный текст справочной системы преобразуется из формата RTF в hlp-файл в интегрированной среде для сборки файлов справки в один проект и компиляции Microsoft Help Workshop. Для выполнения процедуры требуется компилятор Microsoft Help Compiler. Он есть также в составе SDK и поставляется в составе практически всех систем разработки приложений Windows, таких как Borland C++ for Windows и Microsoft Visual C++. Другой путь состоит в использовании массы утилит, позволяющих упростить разработку справочной системы, объединив в себе два этапа разработки: подготовки текста и сборки файла проекта для последующей компиляции. Например, ряд программ (Help Pad, Help&Manual и т.д.) объединяют в себе редактор текста, 4 Создание справочной системы для приложения в формате Windows Help компоновщик проекта, компилятор и компоновщик содержания справки. После завершения процесса компиляции справочная система готова к использованию. Можно работать с ней при помощи приложения winhelp.exe или при помощи функции WinHelp, вызываемой из приложения. 2. Элементы справочной системы 2.1 Разделы Основной элемент справочной системы - раздел (topic). Раздел представляет собой фрагмент справочной системы, отображаемый в окне приложения winhelp.exe. Он может содержать как текст, так и графические изображения (рис. 1). Рис. 1. Раздел справочной системы редактора Help Pad Если размер окна недостаточен для отображения раздела целиком, у окна появляется горизонтальная или вертикальная полоса просмотра (либо сразу и горизонтальная, и вертикальная полоса просмотра). Помимо основного окна, приложение winhelp.exe способно создавать вторичные перекрывающиеся окна и временные окна. В Создание справочной системы для приложения в формате Windows Help 5 этих окнах также отображается содержимое разделов справочной системы. Cправочная система состоит из многих разделов, связанных между собой многочисленными перекрестными ссылками и имеет структуру гипертекста. Каждый раздел обычно имеет заголовок, отображаемый в верхней части окна просмотра, идентификатор, набор ключевых слов, по которым можно найти раздел, а также ссылки на другие разделы. 2.2 Перекрестные ссылки Для навигации по справочной системе отдельные разделы связаны между собой при помощи ссылок. Для пользователя ссылки представляются в виде выделенного цветом и подчеркиванием текста или в виде графических пиктограмм. Можно создать ссылку на другой раздел, либо на временное (pop-up) окно. Можно также создать ссылку на раздел, отобразив его во вторичном окне. В первом и третьем случае в окне приложения winhelp.exe ссылка выглядит как фрагмент текста, подчеркнутый сплошной линией, во втором - пунктирной. Например, на рис. 4.1 строка "Regular Links" подчеркнута сплошной линией и представляет собой ссылку на другой раздел. Если выбрать мышью эту строку, в окне появится содержимое раздела "Help Pad Sample" (рис. 2). Рис. 2. Раздел "Control Menus" 6 Создание справочной системы для приложения в формате Windows Help Если выбрать мышью ссылку в виде строки, подчеркнутой пунктирной линией, на экране появится временное окно (рис. 3). Рис. 3. Временное (Popup) окно Временное окно обычно используется для пояснения термина. 2.3 Оглавление Справочная система должна иметь оглавление, пользуясь которым пользователь без труда находит нужный ему раздел. Оглавление создается как отдельный раздел, который отличается от других разделов, тем, что он описывается специальным образом при создании справочной системы и содержит прямые или косвенные ссылки на все остальные разделы. В большинстве справочных систем оглавление создается в виде дерева. В древовидном оглавлении один раздел выполняет роль корневого раздела. Он содержит ссылки на несколько разделов, отвечающих за различные темы (рис. 4.4). Создание справочной системы для приложения в формате Windows Help 7 Рис. 4. Корневой раздел справочной системы Borland С++ Builder Если в корневом разделе справочной системы выбрать строку "What’s New", на экране появится одноименный раздел, представляющий собой следующий иерархический уровень оглавления (рис. 5). Рис. 5. Раздел "What’s New" 8 Создание справочной системы для приложения в формате Windows Help Иногда в оглавлении используются пиктограммы. 2.4 Органы управления Приложение winhelp.exe имеет в своем главном окне меню и окно Toolbar, содержащее кнопки с различными надписями и обозначениями (рис. 6). Рис. 6. Органы управления приложения winhelp.exe С помощью меню "Файл" пользователь может открыть новый hlp-файл (т. е. приступить к работе с новой справочной системой), выбрать принтер и распечатать содержимое текущего раздела, отображаемого в главном окне приложения winhelp.exe. Возможность полной распечатки содержимого всей справочной системы отсутствует. Меню "Правка" предназначено для копирования всего текущего раздела или любого его фрагмента в Буфер обмена (рис. 4.8). При этом копируется только неформатированный текст без графических изображений. Строка "Заметки..." из меню "Правка" предназначена для добавления комментария к разделу. Меню "Закладки" позволяет "вставить" в справочную систему закладку. Такая закладка иногда называется маркером. По умолчанию для имени закладки выбирается заголовок раздела, однако пользователь может указать любое другое имя. С помощью меню "Help" пользователь может узнать о том, как работать с приложением winhelp.exe, а также сделать главное окно этого приложения расположенным всегда над другими окнами (выбрав строку "Always on Top"). Создание справочной системы для приложения в формате Windows Help 9 Окно Toolbar содержит несколько кнопок, предназначенных для выполнения самых нужных функций. С помощью кнопки "Contents" можно отобразить раздел, содержащий оглавление загруженного hlp-файла. Нажав на кнопки "Search" (поиск), “Index” (Указатель) пользователь получит возможность выполнить поиск информации по ключевому слову и встречающимся в тексте словам (рис. 7). Рис. 7. Поиск информации Список ключевых слов определяется для тех разделов, к которым необходимо предоставить доступ по ключевым словам. Например, справочная система приложения Borland C++ for Windows позволяет найти описание функции по ключевому слову - имени функции. Кнопка "Back" позволяет вернуться к просмотру раздела, который отображался в окне приложения winhelp.exe в прошлый раз. При помощи кнопки "History" пользователь может получить доступ к списку названий просмотренных ранее разделов. Он может выбрать из этого списка любой раздел и вызвать его на экран двойным щелчком левой клавиши мыши. Как правило, окно Toolbar содержит кнопки со значками и, причем одна или обе такие кнопки могут быть заблокированы. Эти кнопки предназначены для последовательного просмотра логически 10 Создание справочной системы для приложения в формате Windows Help следующих друг за другом разделов, соответственно, в прямом и обратном направлении. Разработчик справочной системы (то есть исходного файла справочной системы, попадающего на вход компилятора Microsoft Help Compiler) с помощью специальных макрокоманд может изменить состав органов управления приложения winhelp.exe при отображении данного файла. Например, он может добавить меню или новую кнопку. Однако при выборе состава органов управления для справочной системы следует учитывать, что непривычные названия и органы управления иногда затрудняют работу пользователя и, как следствие, ухудшают общее впечатление от приложения. 3. Создание справочной системы Рассмотрим создание простейшей справочной системы на примере утилиты Help Pad от Bryan Wilken. Help Pad - инструмент для создания файлов справки и интерактивной документации в 32-разрядной платформе Windows. С Help Pad можно создать справку в форматах WinHelp и HTML в рамках одного исходного проекта. Help Pad не требует использования текстового процессора. Для получения файлов справки требуется помимо пакета Help Pad компилятор справки (например, Microsoft Help Workshop). Help Pad сохраняет и Проект и информацию Раздела в единственном файле с .hpp расширением. После запуска утилиты появляется главное окно приложения (рис. 8). Для создания нового пакета необходимо выбрать пункт меню File->New. Создание справочной системы для приложения в формате Windows Help 11 Список разделов редактор Рис. 8. Главное окно Help Pad Список разделов сохраняет список разделов и обеспечивает доступ к их свойствам. Можно редактировать заголовок, ключевые слова, и комментировать каждый раздел. Чтобы загружать раздел в редактора, необходимо нажать на ячейку идентификатора темы ID. 3.1 Создание разделов Структурная единица справочной системы - раздел. Необходимо создать нужное количество разделов справочной системы и снабдить каждый раздел необходимыми атрибутами. Атрибуты, которые может иметь раздел справочной системы представлены в табл. 1. Только один из них должен быть указан всегда (контекст), остальные являются необязательными. 12 Создание справочной системы для приложения в формате Windows Help Таблица 1 Атрибут раздела Описание Число, идентифицирующее раздел. Используется для Идентификатор раздела создания контекстно-зависимой справки в приложениях. (Topic ID) Обязательный атрибут Контекст (Context String) Текстовая строка, однозначно идентифицирующая раздел. Используется для ссылки на раздел (обязательный атрибут) Заголовок(Title) Заголовок, под которым раздел появляется при поиске с помощью кнопки "Search" приложения winhelp.exe. Этот атрибут необязательный Пользователь может искать разделы по ключевым словам во вкладке Указатель (Index). Для каждого раздела можно задать несколько ключевых слов (но можно не задавать ни Список ключевых слов одного, в этом случае раздел не будет иметь доступ по (Keywords) ключевым словам). Справочная система может содержать несколько списков ключевых слов. A-Keywords не появляются во вкладке Указатель. Необязательный атрибут Номер в последовательности просмотра (Browse Sequence) Некоторые разделы могут иметь логическую последовательную связь. Данный атрибут позволяет задать положение раздела в последовательности просмотра. Например при использовании кнопок навигации >> и <<. Необязательный атрибут Макрокоманда (Entry Macro) Для каждого раздела можно указать одну или несколько макрокоманд, запускаемых при отображении раздела. Необязательный атрибут Атрибут, который позволяет включать или не включать Тег компиляции (Build раздел в справочную систему в зависимости от параметров Tag) компиляции. Необязательный атрибут Тип окна (Window) Тип окна, в котором будет отображаться этот раздел Комментарий (Comment) Комментарий В справочной системе не может быть двух разделов с одинаковым контекстом. Если же по ошибке сделаны такие разделы, компилятор Help Compiler выведет сообщение об ошибке. Для строки контекста (context string) можно использовать символы от A до Z, числа от 0 до 9, точку и знак подчеркивания (но не символы пробела). Максимальная длина строки - 255 символов. Заголовок раздела (title of the topic) появляется в окне поиска и просмотра закладок, поэтому в хорошей справочной системе все Создание справочной системы для приложения в формате Windows Help 13 разделы имеют заголовок. Максимальная длина текстовой строки заголовка составляет 128 символов. Для каждого ключевого слова можно использовать максимально 255 символов. Если для раздела используется несколько ключевых слов, их нужно разделить символом точка с запятой ";". Тегом компиляции (build tag) отмечаются разделы, которые включаются или не включаются в справочную систему на этапе компиляции в зависимости от содержимого одного из разделов файла проекта справочной системы (файл проекта будет рассмотрен позже). Тег компиляции удобно использовать при отладке. Упражнение 1. Создание разделов справочной системы Создадим разделы справочной системы для приложения, осуществляющего расчёт вязкости по Муни полибутадиена и построение графика с таблицей расчётных данных. Внешний вид приложения представлен на рис 9. Рис. 9. Главное окно приложения Подготовим 7 разделов для описания основных характеристик приложения: 1. Общие сведения о программе. 2. Постановка задачи для расчётов. 3. Описание интерфейса (пунктов меню и кнопок). 14 Создание справочной системы для приложения в формате Windows Help 4. Инструкция по корректировке исходных данных. 5. Инструкция по выводу графической интерпретации расчётов. 6. Сведения об авторе проекта. 7. Сведения о руководителе работы. 8. Расшифровка специфических терминов. Для этого необходимо запустить утилиту Help Pad и сохранить открывшийся пустой проект в рабочий каталог. После этого необходимо выполнить некоторые настройки проекта, кликнув пункты меню Project->Options. В появившемся диалоге необходимо указать ряд сведений о проекте (рис. 10): Рис. 10 проекта Установки опций Вкладка Заголовок Title) - заголовок отображаемый в заголовка окна до 50 символов). Заданный Раздел (Default содержания в (если не *.cnt файл), или General. Справки (Help файла справки, области WinHelp (длина по умолчанию Topic) - раздел файле справки используется заданный по Создание справочной системы для приложения в формате Windows Help 15 умолчанию раздел. Информация, добавляемая к окну Version программы Winhelp, и при печати. Вкладка Files. Имя файла справки (Name of Help File to Create) - это имя файла справки после компиляции с .hlp расширением продлением. По умолчанию используется имя проекта. Местоположение файла содержания (Name of Contents File). Пути поиска файлов с изображениями (Bitmap Search Path) если изображения, используемые в файле справки не находятся в том же самом каталоге где проект, необходимо указать путь к ним для компилятора. Если изображения добавляются с использованием диалога открытия изображения, они будут автоматически добавляться. Добавление файлов *.rtf для компиляции (RTF files to include in build) и загрузка файла *.rtf для создания на его основе шаблона оформления (New topic template). Вкладка Advanced. Макрос конфигурации (Configuration macros) – набор winhelpмакрокоманд, которые будут выполнены, когда файл справки сначала будет загружен. В данном случае макрокоманда BrowseButtons() добавит кнопки пролистывания к панели Winhelp. Далее указываются включаемые для компиляции разделы и опции сжатия файла справки для уменьшения места, занимаемого на диске. Установка свойств окна. Задание свойств окна осуществляется выбором пункта меню Project->Windows. В появившемся диалоге (рис.) задаются свойства окна: во вкладке General Options: Window Type (тип окна) – одно должно быть типа main; имя и заголовок (Name, Caption); цветовая схема для статической (fixed) и динамической (Scrolling) частей; размеры окна. Во вкладке Buttons: Buttons – выбор, какие кнопки будут доступны в справочном окне. Stay on Top вывод справки поверх всех остальных окон. Window Maximized – вывод справки на полный экран. 16 Создание справочной системы для приложения в формате Windows Help Настроим внешний вид окна в соответствии с изложенными инструкциями (рис. 11). Рис. 11. Настройка свойств окна Для улучшения внешнего вида и читаемости справки используется цветовое оформление и разбиение на статический и динамический фреймы. Разбиение на статическую и динамическую части производится вставкой тэга [endstatic] или нажатием кнопки . Далее отредактируем в списке тем в колонке Topic название первого раздела, после чего набъём в редакторе его содержание. Разобьем текст на две части тэгом [endstatic] (рис. 12). Аналогичным образом создадим остальные разделы справочной системы. Новый раздел добавляется к проекту нажатием клавиши , выбором пункта меню Topic->Add или нажатием сочетания клавиш Ctrl++. Создание справочной системы для приложения в формате Windows Help 17 Рис. 12 Для улучшения восприятия материала часто бывает необходимо вставлять иллюстрации. Вставка изображений осуществляется указанием тэга {bml *.bmp}, где *.bmp имя файла с изображением, или выполнением диалога вставки иллюстрации нажатием кнопки . Окно диалога вставки изображений представлено на рис. 13. 18 Создание справочной системы для приложения в формате Windows Help Рис. 13 В диалоге задаётся имя файла с изображением, выравнивание относительно центра документа и прозрачность. Вставим по описанной выше методике файл с изображением главного окна приложения, для которого разрабатывается файл справки (рис. 13). После компиляции этот раздел будет выглядеть следующим образом (рис. 14). Создание справочной системы для приложения в формате Windows Help 19 Рис. 14 3.2 Создание перекрестных ссылок Справочная система, созданная с использованием компилятора Help Compiler, имеет вид гипертекста, состоящего из разделов, связанных между собой ссылками или частей одного раздела, помеченных меткой anchor (якорь). Для вставки метки anchor необходимо установить курсор в то место, где необходимо разместить метку и щёлкнуть кнопку . Ссылки создаются непосредственно в тексте раздела. Любая ссылка состоит из двух частей. Первая часть - это текст, который виден пользователю и отображается, как правило, зеленым цветом с подчеркиванием сплошной или пунктирной линией. Для выполнения перехода пользователь должен сделать щелчок левой клавишей мыши по выделенному таким образом тексту. Вторая часть не видна пользователю. Это строка контекста раздела, на который выполняется переход. 20 Создание справочной системы для приложения в формате Windows Help Создание ссылки создаётся следующим образом. Сначала выделяется мышью та часть текста, которая видна пользователю как гиперссылка, а затем после нажатия кнопки свойства ссылки (рис. 15). настраиваются Рис. 15 Необходимо указать ряд свойств гиперссылки: 1. Link appearance (вид ссылки) внешний вид ссылки в справочной системе. Предлагается три варианта: зелёный с подчёркиванием; только подчёркивание и без выделения цветом и подчёркивания. 2. Target location (расположение объекта перехода) указывает на какой объект будет осуществлён переход. Предлагается четыре варианта перехода: Topic in this help file, на раздел в данном файле справки (в этом случае указывается идентификатор раздела, тип окна для вывода, и необходимость вывода раздела во временное Popup окно); Anchor in this help file, на часть текста внутри данного раздела, помеченную меткой anchor якорь (в этом случае необходимо указать Создание справочной системы для приложения в формате Windows Help 21 идентификатор метки, тип окна для вывода, и необходимость вывода раздела во временное Popup окно); Another help file, на другой help file (в этом случае необходимо указать идентификатор раздела в файле, путь к файлу, тип окна для вывода, и необходимость вывода раздела во временное Popup окно); WinHelp Macro – вод макрокоманды для выполнения каких-либо действий (в этом случае в окно вводится текст программы на языке макрокоманд). Создание вторичного окна При создании ссылки на раздел можно указать, что его содержимое должно отображаться во вторичном окне. Для этого при указании типа необходимо выбрать тип окна не выбранный по умолчанию под именем main, а любое другое. Упражнение 2. Создание гиперссылок в документе Добавим к разработанному набору разделов несколько гиперссылок, упрощающих работу с системой. Откроем раздел “Интерфейс пользователя”, выделим мышью слово разработчик и нажмём кнопку для настройки свойств гиперссылки. Укажем в диалоге, что информация выводится во временное окно, и укажем в качестве идентификатора раздела 60 с заголовком “Автор”. Откомпилируем и запустим на просмотр файл справки. Самостоятельно создадим ссылки на раздел “Руководитель”, ссылку на файл “Borland C++ Builder\Help\teechart.hlp” c описанием функций компоненты teechart, используемой в приложении для построения графика. Идентификатор любого раздела можно просмотреть, если открыть файл оглавления в редакторе Help Pad. 3.3. Создание оглавления справки 22 Создание справочной системы для приложения в формате Windows Help Для начала проектирования оглавления необходимо в главном окне Help Pad щёлкнуть на кнопку редактора оглавления (рис. 16). , после чего откроется окно Рис. 16. Главное окно редактора оглавления Файл оглавления состоит из заголовков (Items) ссылающихся на другие заголовки или разделы и разделов. Внешний вид заголовков отличается от разделов (изображается в виде книги, которая раскрывается при нажатии). Чтобы добавить заголовок необходимо щёлкнуть на кнопке с изображением плюса, после чего указать, что создаётся заголовок (Heading) и ввести его название, которое будет отражаться в оглавлении. Разделы проще всего переносить из левого окна нужное место правого перетаскиванием мышью. Иерархия и вложенность заголовков друг в друга позволяют кнопки перемещения заголовков и разделов . Чем левее Создание справочной системы для приложения в формате Windows Help 23 находится заголовок, тем он главнее в иерархии заголовков, т.е. более левый заголовок включает в себя все более правые. То же относится и к разделам. Упражнение 3. Создание оглавления Скомпонуем заголовки и разделы так, как указано на рис. 17. 4. Вызов справки из приложений Windows Приложения Windows обращаются к справочной системе с помощью специально предназначенной для этого функции WinHelp. Когда приложение вызывает эту функцию, происходит запуск приложения winhelp.exe. Вызывая функцию WinHelp, приложение может отобразить на экране любую информацию, обычно доступную пользователю через меню или кнопки окна Toolbar приложения winhelp.exe. Хорошо спроектированное приложение имеет меню "Help", с помощью которого пользователь может получить доступ к оглавлению и предметному указателю справочной системы. Кроме этого, обычно имеется возможность получения так называемой контекстно-зависимой справочной информации. Когда пользователь нажимает клавишу <F1> или <Shift+F1>, приложение выдает справочную информацию, которая зависит от того, в каком состоянии находятся органы управления приложения, какая строка какого меню выделена, около какого слова в редактируемом тексте находится курсор и т. п. Функция WinHelp позволяет организовать поиск нужного раздела в справочной системе и отображение его на экране. Задача отслеживания текущего состояния органов управления и организации контекстно-зависимой подсказки лeжит на плечах разработчика приложения. Прототип функции WinHelp Прототип функции WinHelp определен в файле windows.h: <FONT COLOR=#000080>BOOL WINAPI WinHelp( HWND hwndMain, // идентификатор окна LPCSTR lpszHelp, // путь к hlp-файлу UINT usCommand, // код операции DWORD ulData); // дополнительные данные</FONT> 24 Создание справочной системы для приложения в формате Windows Help Параметр hwndMain перед вызовом функции должен содержать идентификатор окна, для которого вызывается справочная система. Через параметр lpszHelp передается указатель на текстовую строку, закрытую двоичным нулем, в которой должен быть записан путь к hlp-файлу, содержащему нужную справочную систему. Функция WinHelp может выполнять одну из нескольких операций в зависимости от значения параметра usCommand: Команда Описание HELP_COMMAND0x0102 Выполнение макрокоманды, заданной параметром ulData. Этот параметр должен содержать дальний указатель на текстовую строку, содержащую макрокоманду. Перед использованием команды HELP_COMMAND необходимо, чтобы было запущено приложение winhelp.exe и чтобы нужный hlp-файл был открыт HELP_CONTENTS0x0003 Отображение раздела, выполняющего роль оглавления справочной системы. Параметр ulData для этой команды должен быть равен нулю HELP_CONTEXT0x0001 Отображение содержимого раздела, заданного номером контекста, определенным в разделе MAP файла проекта справочной системы. Через параметр ulData передается номер контекста отображаемого раздела Отображение содержимого раздела, заданного номером контекста, во временном окне. Номер HELP_CONTEXTPOPUP0x0008 контекста должен быть определен в секции MAP файла проекта справочной системы и указан в параметре ulData HELP_FORCEFILE0x0009 Если в момент вызова функции WinHelp с этим кодом операции отображается правильный hlpфайл, функция отрабатывает вхолостую. В противном случае отображается раздел оглавления, заданный в секции CONTENTS файла проекта справочной системы. Параметр ulData для этой команды должен быть равен нулю HELP_HELPONHELP0x0004 Отображение раздела оглавления справочной системы, содержащей информацию об использовании приложения winhelp.exe. Параметр ulData должен быть равен нулю HELP_INDEX0x0003 Синоним HELP_CONTEXT, использовался раньше в функции WinHelp для Windows версии 3.0 Создание справочной системы для приложения в формате Windows Help 25 HELP_KEY0x0101 Отображение раздела справочной системы в соответствии с ключевым словом, передаваемым через параметр ulData. Этот параметр должен содержать дальний указатель на текстовую строку, содержащую ключевое слово HELP_MULTIKEY0x0201 Аналогично предыдущему, но с использованием альтернативной таблицы ключей. Параметр ulData должен содержать дальний указатель на структуру MULTIKEYHELP, определяющую символ сноски для альтернативного ключа и ключевое слово HELP_POPUPID0x0104 Отображение содержимого раздела, заданного номером контекста, во временном окне. Через параметр ulData передается номер контекста отображаемого раздела, определенный в разделе MAP файла проекта справочной системы. HELP_PARTIALKEY0x0105 Аналогично HELP_KEY, однако отображаются разделы, для которых имеется неполное соответствие (несколько начальных символов ключевого слова) HELP_QUIT0x0002 Завершение работы с hlp-файлом. Если ни одно другое приложение не выполняет никаких операций со справочной системой, приложение winhelp.exe завершает свою работу. Параметр ulData должен быть равен нулю HELP_SETCONTENTS0x0005 Раздел, номер контекста которого указан в параметре ulData, будет выполнять функции оглавления справочной системы. Номер контекста раздела должен быть определен в секции MAP файла проекта справочной системы HELP_SETINDEX0x0005 Синоним HELP_SETCONTEXT, использовался раньше в функции WinHelp для Windows версии 3.0 HELP_SETWINPOS0x0203 Изменение размеров и расположения окна приложения winhelp.exe в соответствии со значениями, определенными в структуре HELPWININFO, указатель на которую передается через параметр ulData Для привязки файла справки к приложению используется пункты меню Borland C++ Builder Option->Project, затем в закладке 26 Создание справочной системы для приложения в формате Windows Help Application с помощью кнопки Browse напротив окошка Help file указывается путь к файлу справки. После этого, добавляется обработчик события к любому управляющему элементу для вызова первой страницы { Application->HelpCommand(HELP_CONTENT,0); } для вызова закладки Search (Поиск) справочной системы { Application->HelpCommand(HELP_PARTIALKEY,(long)””); } Для создания контекстно-зависимой справки необходимо указать идентификатор раздела справки в свойстве HelpContext любого визуального компонента в проекте Borland C++ Builder. После этого, если этот компонент в запущенном на выполнение приложении выделен мышью, то при нажатии клавиши F1 вызовется раздел справочной системы с указанным идентификатором. 5. Требования к отчёту 1. Постановка задачи (необходимость написания файла справки, краткое описание программного продукта и что будут отражать разделы справочной системы) 2. Файловая структура проекта справочной системы (список и расшифровка назначения файлов из которых состоит проект файла справки исходные, проектные, откомпилированные, файлы содержания и если есть дополнительные) 3. Логическая структура файлов (иерархия организации разделов – аналог содержания со всеми раскрытыми ссылками на разделы) 4. Распечатки содержания всех разделов с указанием в начале раздела всех его атрибутов (ID, Topic, Keywords и т.д.) 5. Распечатка всех обработчиков проекта для которого пишется файл справки, где происходит обращение к разделам справочной системы. Создание справочной системы для приложения в формате Windows Help 27 Библиографический список 1. Шамис В.А. Borland C++ Builder. Программирование на С++ без проблем. М.:”Нолидж”, 1997 – 266 с. 2. Елманова Н.Э., Кошель С.П. Введение в Borland C++ Builder4 -М.: Диалог-МИФИ, 1999 - 352 с. 3. Архангельский А.Я. Программирование в Borland C++ Builder 4 - М.: ЗАО Издательство "БИНОМ", 1999 - 928 с. Учебное издание РАЗРАБОТКА СПРАВОЧНОЙ СИСТЕМЫ ДЛЯ ПРИЛОЖЕНИЙ В ФОРМАТЕ WINDOWS-HELP Методические указания для выполнения лабораторной работы по дисциплине "Информатика и распределённые базы данных" Для студентов специальности 210200 Редактор Н.Р. Подобедова Корректор Н.В. Бургонова Компьютерный набор и вёрстка А.А. Хвостов ЛР № 020449 от 31.10.97. Подписано в печать . Формат 60х84 1/16. Бумага офсетная. Гарнитура Таймс. Ризография. Усл. Печ. Л. 1,16. Уч.-изд. Л. 1,0. Тираж 100 экз. Заказ . Воронежская государственная технологическая академия (ВГТА) Участок оперативной полиграфии ВГТА Адрес академии и участка оперативной полиграфии: 394017 Воронеж, пр. Революции, 19 28 Создание справочной системы для приложения в формате Windows Help