Разработанное вами приложение должно быть интуитивно понятным и дружественным к пользователю. Если у пользователя возникнут затруднения, он должен быстро получить справку о возможных действиях. Требуемую информацию пользователь может найти в руководстве пользователя или обратиться за консультацией к разработчику. Но проще всего воспользоваться справочной системой, содержащей информацию о приложении, описание его основных функций и инструкцию по работе.
Для отображения справочной информации в Visual FoxPro вы можете использовать строку состояния, диалоговое окно и справочную систему в формате WinHelp или HTML.
В Visual FoxPro строка состояния используется для пояснения назначения элементов управления формы и пунктов меню. Пояснения к элементам управления, отображаемые в строке состояния, задаются в свойстве statusBarText (Текст строки состояния). Кроме текста строки состояния вы можете задать текст подсказки, который будет отображаться под курсором мыши, если его установить на элемент управления и удерживать некоторое время. Текст подсказки задается в свойстве TooiTipText (Текст подсказки). На рис. 12.1 для поля редактирования, содержащего адрес клиента, в окне Properties (Свойства) установлены значения свойств statusBarText (Текст строки состояния) и TooiTipText (Текст подсказки).
В процессе выполнения приложения осуществляются разнообразные проверки, например, проверка соответствия введенного в поле значения заданным условиям. Если в результате проверки окажется, что введенное значение не удовлетворяет требуемым условиям, необходимо об этом сообщить пользователю. Из текста сообщения должна быть ясна причина ошибки. Кроме того, текст должен содержать рекомендации по ее исправлению. Для вывода информационного сообщения вы можете воспользоваться функцией MESSAGEBOX или создать собственную функцию. Рассмотрим описание функции MESSAGEBOX и приведем пример ее использования.
Рис. 12.1. Определение пояснений для элемента управления Функция имеет следующий синтаксис:
MESSAGEBOX (текст-Сообщения [, типДиалоговогоОкна [, заголовок] ] }
Аргумент текстсообщения содержит текст выводимого сообщения. Длинное сообщение автоматически располагается на нескольких строках. Если сообщение состоит из нескольких предложений и вы хотите разбить его на абзацы, то используйте функцию снк(13) для формирования новой строки.
Аргумент типДиалоговогоОкна задает перечень кнопок и значков, которые будут отображаться в диалоговом окне. Данный аргумент является числовым и его значение определяется как сумма трех параметров: типа кнопок, типа значков и номера кнопки, выбранной по умолчанию. Возможные значения этих параметров приведены в табл. 12.1—12.3.
Таблица 12.1. Кнопки, отображаемые в диалоговом окне
Значение | Кнопки |
0 | ОК |
1 | ОК и Cancel |
2 | Abort, Retry, Ignore |
3 | Yes, No, Cancel |
4 | Yes, No |
5 | Retry, Cancel |
Таблица 12.2. Значки, отображаемые в диалоговом окне
Значение | Значок |
16 | Знак Stop |
32 | Вопросительный знак |
48 | Восклицательный знак |
64 | Информационный знак ( i ) |
Таблица 12.3. Кнопка, выбираемая по умолчанию
Значение | Кнопка по умолчанию |
0 | Первая кнопка |
256 | Вторая кнопка |
512 | Третья кнопка |
Функция MESSAGEBOX возвращает числовое значение, определяющее нажатую пользователем кнопку. Возможные значения приведены в табл. 12.4.
Таблица 12.4. Значения, возвращаемые функцией
Значение | Кнопка |
1 | ОК |
2 | Cancel |
3 | Abort |
4 | Retry |
5 | Ignore |
6 | Yes |
7 | No |
Рассмотрим использование диалогового окна для вывода сообщения об ошибке ввода значения кредита клиента. Для этого выполните следующие действия:
if THIS.Value > 5000
= MESSAGEBOX("Максимальный кредит для клиента составляет ;
5000 рублей." + ;
CHR(13) + ;
"В особых случаях согласуйте величину кредита ;
с Генеральным директором.",;
0+48+ 0, "Предупреждение")
endif
Рис. 12.2. Определение процедуры для события Valid
Рис. 12.3. Диалоговое окно с сообщением об ошибке
Создание справочной системы в формате WinHelp
Основой справочной системы являются темы, содержащие пояснительный текст. Содержание справочной системы включает список тем, доступных в системе. Каждая тема имеет заголовок и уникальный символьный идентификатор. Дополнительно каждой теме можно поставить в соответствие уникальный индекс темы, который должен быть целым числом.
В справочной системе для поиска темы используются ключи, содержащие название темы и ссылку на нее. Каждая тема может иметь более одного ключа поиска. Кроме того, один ключ может содержать ссылку на несколько тем.
Для организации контекстного вызова темы из справочной системы вы можете использовать числовые значения индексов или значения ключа. Использование идентификаторов тем для контекстного вывода справочной информации не допускается.
Чтобы связать между собой отдельные темы, используются перекрестные ссылки. При этом текст, используемый для организации перекрестной ссылки, выделяется зеленым цветом и подчеркиванием.
В описании любой системы используются термины, специфичные для конкретной системы. Например, в системах складского учета такими терминами будут накладная, счет, отпуск товара. В качестве термина может рассматриваться не только отдельное слово, но и любая фраза из текста темы. Справочная система Windows позволяет дать каждому термину приложения краткое определение. Такие термины на экране выделены зеленым цветом и пунктирным подчеркиванием. Если щелкнуть мышью на термине, для которого определено краткое описание, это описание появится на экране в рамке поверх текста темы.
Создание справочной системы в формате WinHelp включает следующие этапы:
Мы рассмотрим только наиболее часто используемые средства при создании справочной системы. Подробную информацию вы найдете в руководстве по применению Help Compiler. В качестве примера создадим простую справочную систему, состоящую из нескольких тем. Для каждой темы определим заголовки, идентификаторы и ключи, используемые для поиска информации.
Замечание
При разработке справочной системы крупных приложений, как правило, используются специальные средства, например ForeHelp, которые содержат интегрированную среду.
Создание тем справочной системы начинается с создания файла описания в формате RTF. Проще всего для этого использовать редактор Microsoft Word. Создайте с помощью него новый файл. После этого введите тексты тем справочной системы, расположив каждую тему на отдельной странице. Поэтому для разделения тем вставьте между ними признак начала новой страницы путем нажатия комбинации клавиш <Ctrl>+<Enter>. В тексте вы можете форматировать отдельные части темы, а также вставлять в текст рисунки (рис. 12.4).
Рис. 12.4. Тексты тем с рисунками
Можно определить заголовки, идентификаторы и ключи поиска для каждой темы. В Microsoft Word для этих целей необходимо воспользоваться сносками. Указатели сноски должны располагаться в начале темы, а сам текст заголовка, идентификатора и ключа поиска — в области сноски.
Для определения заголовка темы выполните следующие действия:
Предупреждение
Будьте внимательны. Между маркером сноски и текстом заголовка должен быть только один пробел. Заголовок должен содержать не более 128 символов. Кроме того, он не может быть форматированным.
Рис. 12.5. Определение заголовка темы
Идентификатор темы определяется аналогично заголовку темы, только в качестве маркера сноски используется символ #. При создании идентификатора необходимо придерживаться следующих правил.
При определении ключей необходимо иметь в виду следующее.
Рис, 12.6. Определение ключей для поиска тем справочной системы
На рис. 12.6 представлен фрагмент текстового описания справочной системы, а на рис. 12.7 — вкладка Предметный указатель основного окна справочной системы.
Рис. 12.7. Поиск темы по ключам справочной системы
Перекрестные ссылки
Используя перекрестные ссылки справочной системы, вы можете из текущей темы перейти в связанные с ней или близкие ей темы.
В предыдущем разделе мы рассматривали создание тем, для которых были определены идентификаторы. Теперь создадим тему, в которой будет приведена ссылка на связанные с ней темы.
В теме создадим в качестве примера ссылку между фразой печать данных этой темы и темой с идентификатором Print__text. Для этого установите для фразы печать данных формат Двойное подчеркивание. Далее установите курсор на следующую позицию за выделенной фразой, определите формат Скрытый и введите идентификатор темы, с которой устанавливается связь (в данном случае: Print_text).
Замечание
Идентификатор расположите сразу же за выделенной фразой, не оставляя между ними пробела (рис. 12.8).
Рис. 12.8. Создание перекрестной ссылки
Замечание
По умолчанию скрытый текст не отображается на экране, что довольно неудобно при создании описания справочной системы. Чтобы скрытый текст отображался на экране, установите для категории Просмотр режим отображения скрытого текста в диалоговом окне Параметры, открывающемся при выборе команды Параметры из меню Сервис.
Аналогичным образом вы можете установить связь с другими темами справочной системы. Несмотря на то, что в тексте фраза была установлена в формате с двойным подчеркиванием, в справочной системе она появляется с обычным подчеркиванием. При позиционировании курсора на выделенной фразе меняется вид курсора, а при щелчке осуществляется переход к теме, связанной с этой фразой.
В справочной системе помимо перекрестных ссылок можно создать пояснения к отдельным терминам. Пояснение создается аналогично отдельной теме. Для него определяется идентификатор темы, после чего термин, требующий кратких пояснений, выделяется одинарным подчеркиванием. Затем за термином в скрытом формате вводится идентификатор поясняющей темы.
В справочной системе термины, для которых созданы пояснения, выделяются цветом и пунктирным подчеркиванием. При щелчке мыши на данном термине открывается окно с поясняющим текстом. Для закрытия окна с пояснениями необходимо щелкнуть мышью вне окна с текстом пояснения. После этого вы возвращаетесь в то же окно, откуда вызвали окно пояснения.
Формирование файла проекта справочной системы
Файл проекта справочной системы содержит параметры ее компиляции и может включать до шести разделов, выполняющих функции, описанные в табл. 12.5.
Таблица 12.5. Разделы файла проекта справочной системы
Раздел | Функция |
[Files] | Определяет список файлов с описанием тем |
[Options ] | Определяет заголовок справочной системы, а также некоторые другие параметры компиляции |
[BuildTags] | Определяет список тем, включаемых в справочную систему |
[Alias] | Определяет псевдонимы тем |
[Map] | Назначает числовой индекс идентификатору темы |
[Bitmaps] | Определяет список графических файлов, включаемых в справочную систему |
Раздел [Files]
В разделе [Files] перечисляются файлы в формате RTF, которые включаются в состав справочной системы. Например:
[Files]
SALES.RTF; инструкция пользователя
EDIT.RTF; инструкция по общим правилам ввода данных
Определение параметров компиляции
Раздел [Options] файла проекта справочной системы содержит описание параметров компиляции. Основные из них следующие:
Замечание
Наименование шрифта, заданного параметром FORCEFONT, должно совпадать с его именем, которое отображается в папке Панель управления Windows. Пробелы в наименовании типа шрифта не допускаются.
Синтаксис параметра TITLE следующий:
TITLE = имяЗагчэловка
Параметр WARNING имеет следующий синтаксис:
WARNING = уровень
Где параметр уровень имеет одно из трех значений, приведенных в табл. 12.6.
Таблица 12.6. Уровни параметра WARNING
Уровень | Выводимая информация |
1 | Только наиболее серьезные ошибки |
2 | Все ошибки |
3 | Все ошибки и предупреждения |
Раздел [Map]
Раздел [Map] является обязательным в том случае, если при организации файла справочной системы использовались контекстные ссылки или использовалось свойство HeipContextiD для вызова темы справочной системы.
Данный раздел содержит описание связи между идентификаторами тем и соответствующими им целыми значениями индекса тем. При использовании в приложении контекстного вызова справочной системы в разделе необходимо описать все идентификаторы, по которым будет осуществляться контекстный вызов.
После того как описание тем справочной системы и файл проекта подготовлены, можно приступать к компиляции справочной системы. В результате будет создан файл справки, имеющий расширение HLP.
Для компиляции справочной системы в Visual FoxPro вы можете воспользоваться программой Help Workshop, выполнив следующие действия:
Если не было ошибок компиляции, создается файл справки, вы можете запустить его для проверки непосредственно из программы Help Workshop. Для этого выполните следующие действия:
Обычно окно справочной системы содержит три вкладки: Содержание, Указатель и Поиск. Для того чтобы в диалоговом окне присутствовала вкладка Содержание, необходимо создать файл с содержанием справки. Например, для файла справки, приведенного на рис. 12.8, не был создан файл с содержанием справочной системы. Конечно, можно в области текста темы, открываемой при вызове справочной системы, указать ссылки на все остальные темы файла справки. Но при создании файла справки в среде
Windows более предпочтительным является отображение содержания в иерархическом виде. Для создания такого содержания в Help Workshop выполните следующие действия:
Чтобы подключить содержание к файлу справки откройте окно файла проекта и в разделе [OPTIONS] укажите имя файла с содержанием справочной системы.
Создание справочной системы в формате HTML
Для создания справочной системы в формате HTML можно использовать HTML Help Workshop.
Замечание
Если у вас имеется ранее созданный проект справочной системы в формате WinHelp, с помощью мастера вы можете преобразовать его в проект срормата HTML.
Окно программы HTML Help Workshop (рис. 12.9) состоит из двух частей. В левой части находятся вкладки Project (Проект), Contents (Содержание), Index (Указатель) и Help (Справка). Слева от каждой вкладки размешена соответствующая панель инструментов.
В правой части окна отображается содержимое выбранной темы справочной системы в виде файла HTML. Вы можете не только просмотреть этот файл, но и редактировать его с помощью команд из меню Tags (Теги) и кнопок панели инструментов.
Рис. 12.9. Окно программы HTML Help Workshop
HTML Help Workshop предоставляет возможность просмотра файлов с темами в Web-браузере (рис. 12.10). Для этого выберите имя требуемого файла в разделе [FILES] и нажмите кнопку Display in Browser (Отобразить в браузере).
Рис. 12.10. Просмотр темы справочной системы в Web-браузере
Определение параметров проекта справочной системы
Параметры проекта отображаются в разделе [options] вкладки Project (Проект). Для их редактирования нажмите кнопку Change Project Options (Изменить параметры проекта) на панели инструментов вкладки. Откроется диалоговое окно Options (Параметры) (рис. 12.11), которое содержит четыре вкладки: General (Общие), Files (Файлы), Compiler (Компилятор) и Merge Files (Объединяемые файлы).
На вкладке General (Общие) вы определяете:
Вкладка Files (Файлы) используется для указания расположения файлов справочной системы, файлов с указателями и содержанием. На вкладке Compiler (Компилятор) задаются параметры компиляции справочной системы.
Рис. 12.11. Определение параметров проекта
Чтобы в приложениях можно было использовать справочную систему, вы должны определить псевдоним каждой темы.
Рис. 12.12. Список псевдонимов тем
Для этого откройте диалоговое окно HtmlHelp API information нажатием одноименной кнопки на панели инструментов вкладки Project (Проект) и перейдите на вкладку Alias (Псевдоним) (рис. 12.12). После нажатия кнопки Add (Добавить) и задания в диалоговом окне Alias (Псевдоним) псевдонима и имени связанного с ним файла темы (рис. 12.13) будет добавлен новый псевдоним.
Рис. 12.13. Определение псевдонимов тем
Определение связи между псевдонимами и индексами тем
Для открытия определенной темы справочной системы используются индексы тем. Связь между псевдонимами тем и соответствующими им целочисленными значениями индекса тем задается в отдельном текстовом файле. В этом файле вы должны описать все идентификаторы, по которым будет осуществляться контекстный вызов. Данный файл состоит из строк, содержащих ключевое слово #Define, за которым следуют разделенные пробелом идентификатор и индекс темы. Пример текста приведен ниже:
#Define IDH_CUSTOMER 3
#Define IDH_GOODS 4
После создания файла связи вы должны связать его с файлом проекта. Для этого в диалоговом окне HtmlHelp API information перейдите на вкладку Map (Карта) и добавьте его в список подключаемых файлов.
Создание содержания справочной системы
Для создания содержания справочной системы в иерархическом виде перейдите на вкладку Contents (Содержание). В области содержания справочной системы (рис. 12.14) вы можете добавить заголовки нескольких уровней вложенности и непосредственно ссылки на темы справочной системы.
Рис. 12.14. Вкладка Contents
Рис. 12.15. Определение элемента содержания справочной системы
Чтобы добавить заголовок или строку ссылки на тему справочной системы, нажмите соответственно на кнопки Insert a heading (Вставить заголовок) или Insert a page (Вставить страницу). Откроется диалоговое окно Table of Contents Entry (Ввод содержания) (рис. 12.15), в котором задайте наименование строки содержания и ссылку на тему справочной системы.
Вы можете создать многоуровневое содержание справочной системы. Для изменения уровня заголовка используйте кнопки Move selection right (Сдвинуть вправо) и Move selection left (Сдвинуть влево).
Создание ключей для поиска тем
Для создания ключей поиска перейдите на вкладку Index (Указатель). Используя кнопки панели инструментов вкладки, вы можете создать новый ключ, редактировать ранее созданный или удалить ключ (рис. 12.16).
Рис. 12.16. Определение ключей для поиска тем
Для добавления нового ключа нажмите кнопку Insert a keyword (Вставить ключ). Откроется диалоговое окно Index Entry (Ввод указателя) (рис. 12.17), в котором в поле Keyword (Ключ) введите значение ключа, а затем в список Files/URLs and their information types (Файлы/Интернет ссылки и их типы) с помощью кнопки Add (Добавить) добавьте созданные ранее темы справочной системы. Для изменения тем используйте кнопку Edit (Редактировать), а для удаления — кнопку Remove (Удалить).
Рис. 12.17. Определение тем для ключа
Компиляция и тестирование справочной системы
После того как вы подготовили проект справочной системы, его необходимо сохранить и скомпилировать. Используя кнопку Save project, contents and index files (Сохранить проект, содержание и индексированные файлы) на панели инструментов вкладки Project (Проект), можно сохранять файлы проекта, содержания и указателя. Для компиляции созданного проекта нажмите кнопку Compile HTML file (Компилировать HTML файл) панели инструментов HTML Help Workshop.
Нажмите кнопку View compiled file (Просмотр скомпилированного файла), чтобы просмотреть созданный файл справочной системы. Откроется окно, представленное на рис. 12.18.
Рис. 12.18. Просмотр справочной системы
Использование справочной системы в приложениях
Мы рассмотрели создание справочных систем двух типов. Однако обращение к ним из приложения, созданного в Visual FoxPro, осуществляется одинаково. Рассмотрим в данном разделе команды Visual FoxPro, управляющие выводом справочной информации, и свойства элементов управления, с помощью которых организуется связь с темами справочной системы.
Команды Visual FoxPro для управления справочной системой
Для определения файла, содержащего справочную систему, а также для вывода на экран содержания или указанной темы из справочной системы используются команды Visual FoxPro. Список этих команд и их назначение приведены в табл. 12.7.
Таблица 12.7. Назначение команд для управления справочной системой
Команда | Назначение |
SET HELP | Запрещает или разрешает вывод справочной системы или определяет имя используемой справочной системы |
HELP | Выводит на экран содержание или указанную тему справочной системы |
SET TOPIC TO | Определяет содержание справочной системы |
SET HELP
Команда SET HELP управляет выводом справочной системы и определяет ее имя. Она имеет два варианта синтаксиса:
SET HELP ON | OFF | Предназначена для разрешения или запрета активизации стандартной справочной системы программы Visual FoxPro. Если использована команда SET HELP ON, при нажатии клавиши <F1> или при выполнении команды HELP основного меню отображается стандартная справочная система Visual FoxPro. При использовании команды SET HELP OFF средства просмотра справочной системы будут недоступны |
SET HELP TO имяФайла | Определяет дополнительный файл справочной системы. Этот вариант команды позволяет использовать созданную вами справочную систему |
Например:
SET HELP TO sales.hip
HELP
Для вывода на экран содержания справочной системы или указанной темы в окне справочной системы предназначена команда HELP, имеющая следующий синтаксис:
HELP [идентификаторТемы | ID индексТемы]
[IN [WINDOW] имяОкна I IN [WINDOW] SCREEN] /" I IN [WINDOW] MACDESKTOP] [NOWAIT]
Для вывода содержания справочной системы необходимо использовать команду HELP без указания имени темы. Если вы хотите отобразить контекстную справку, необходимо указать идентификатор темы или ее индекс.
Опция IN [WINDOW] позволяет открыть окно справочной системы внутри окна, описанного с помощью команды DEFINE WINDOW.
По умолчанию при вызове справочной системы приостанавливается выполнение программы, позволяя пользователю найти требуемую информацию. При использовании опции NOWAIT после вывода справочной информации программа продолжает свое выполнение.
SET TOPIC
По умолчанию содержанием справочной системы является первая по порядку тема. Для изменения содержания используется команда SET TOPIC, позволяющая определить тему, которая в дальнейшем будет являться содержанием справочной системы.
Команда имеет два варианта синтаксиса:
Используя команду SET TOPIC то имяТемы, вы можете задать имя темы, отображаемой в справочной системе.
Команда SET TOPIC то логическоеВыражение отображает заданную тему в справочной системе в зависимости от значения логического выражения.
Команда SET TOPIC ID то [индексТемы] используется для указания отображаемой темы по его идентификатору.
Определение темы справочной системы для элементов управления
При создании справочной системы для каждой формы приложения, а иногда и для отдельных объектов формы можно создать отдельную тему файла справки. Затем необходимо определить для формы файл справки и связанную с формой тему. Для этого используется команда SET HELP то имяфайла, которая должна выполняться при открытии формы или при запуске приложения, если справочная информация для всех форм находится в одном файле справки.
Затем необходимо задать для объектов формы или для самой формы свойство HELPContextiD (рис. 12.19), которое использует индекс темы, заданный в разделе [MAP] файла проекта справочной системы.
Если вы установили это свойство, то во время просмотра формы нажатие клавиши <F1> приведет к открытию указанной темы справочной системы. На рис. 12.20 вы видите использование справки в формате WinHelp, а на рис. 12.21 — в формате HTML.
Рис. 12.19. Определение свойства HELPContextiD
Рис. 12.20. Вид темы справочной системы в формате WinHelp
Рис. 12.21. Вид темы справочной системы в формате HTML
Для краткого описания отдельных объектов формы можно использовать справку типа "What's This?" (Что это?), которая аналогична контекстнозависимой справке, выводимой для объекта, на котором установлен фокус. Но, в отличие от нее справка типа "What's This?" (Что это?) отображается в виде небольшого окна с текстом справочной информации и удаляется с экрана, как только вы щелкнете мышью где-либо на экране.
Для создания справка данного типа используются свойства, описанные в табл. 12.8.
Таблица 12.8. Свойства справки типа What's This?
Свойство | Описание |
WhatsThisHeip | Установка этого свойства для формы позволяет использовать справку типа What's This? (Что это?) как для формы, так и для входящих в нее объектов |
WhatsThisButton | При установке этого свойства в правой части области заголовка формы появляется кнопка What's This? (Что это?) LZJ |
WhatsThisHelpID | Задает идентификатор темы справочной системы для данного объекта |
Кроме того, для изменения вида курсора на знак вопроса и вызова справки типа What's This? при щелчке мышью на объекте можно использовать метод WhatsThisMode.
Замечание
Темы для справки типа "What's This?" выводятся в окне небольшого размера, поэтому должны содержать только краткую, на несколько строк, информацию.
Для определения справки типа "What's This?" выполните следующие действия: