                           ГЛАВА 3

              СОЗДАНИЕ HELP ТЕМАТИЧЕСКИХ ФАЙЛОВ

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

              Выбор санкционированного средства

     Чтобы написать текстовые файлы, Вам понадобится Rich Text
Format (RTF) редактор,  который  позволяет  создавать  сноски,
подчеркнутый текст  или зачеркнутый,  или текст,  подчеркнутый
двойной линией, который указывает на управляющие коды. Эти ко-
ды описаны  в  разделе "Кодирование Help тематических файлов".
Ваши выборы включают, но не ограничиваются:
     - Microsoft Word для Windows, версия 1.0
     - Microsoft Word для PC, версия 5.0
     - Microsoft Word для Macintosh, версия 3.0 или 4.0
     - Иные  системы  подготовки  текстов,  чем  те,   которые
       обеспечивает RTF.
     Возможности RTF Microsoft Word дают Вам возможность  вве-
дения кодированного текста,  требуемого для определения терми-
нов Help,  например,  переходы,  ключевые слова и определения.
Если Вы выбираете иной редактор, чем редактор программных про-
дуктов Microsoft Word,  то убедитесь,  будет ли  он  создавать
Help файлы, которые там работают как Вы хотите.

          Структурирование Help тематических файлов

     Help тематические файлы содержат множество Help тем.  Для
идентификации каждой темы в файле:
     - Темы разделяются жесткими разрывами страниц.
     - Каждая  тема,  доступная  через  гипертекстовую  связь,
должна иметь уникальный идентификатор или строку контекста.
     - Каждая тема может иметь заголовок.
     - Каждая тема может иметь список связанных с ней ключевых
слов.
     - Каждая тема может иметь идентификатор тега построения.
     - Любая  тема  может  иметь  заданную  последовательность
просмотра.
     На рисунке 3.1 показана часть тематического файла, содер-
жащая описание  того,  как  выполняются  задачи,  использующие
программу примера Helpex.
                Рисунок 3.1 Пример тем помощи
  ╔═[■]════════════════════════════════════════════════[°][∙]═╗
  ║             Microsoft Word - \HELP\HELPNEW.NRM            ║
  ║───────────────────────────────────────────────────────────║
  ║ File Edit Help View Insert Format Utilities Macro Window  ║
  ║───────────────────────────────────────────────────────────║
  ║───────────────────────────────────────────────────────────║
  ║ #$+Deleting Text                                          ║
  ║ Эта тема объясняет как удалить текст (Эта тема связывается║
  ║  с ключевыми словами "copy" и "clip".)                    ║                                      ║
  ║───────────────────────────────────────────────────────────║
  ║ #$+Exiting                                                ║
  ║  Эта тема объясняет как выводить Helpex.                  ║
  ║───────────────────────────────────────────────────────────║
  ║  #$+Edit Clear Command                                    ║
  ║───────────────────────────────────────────────────────────║
  ║  # proc_deleting_text                                     ║
  ║  $ Deleting Text                                          ║
  ║  + procedures:020                                         ║
  ║  K delete; clipboard                                      ║
  ║  # proc_exiting                                           ║
  ║  $ Exiting                                                ║
  ║  + procedures:exiting                                     ║
  ║  # HELPID_EDIT_CLEAR                                      ║
  ║  $ EDIT Clear Command                                     ║
  ╚══════════════════════════════════════════════════════════─┘
     Для получения информации о введении разрывов страниц меж-
ду темами,  смотрите документацию для  редактора,  который  вы
используете. Для получения информации о присвоении контекстных
строк и заголовков темам, смотрите следующие разделы.

             Кодирование Help тематических файлов

     Система Help использует коды управления для особых целей:

  Управляющий код            Цель
  ───────────────────────────────────────────────────────────
  Сноска в виде         Тег  построения - Определяет     тег,
  звездочки (*)         определяющий темы, которые компилятор
                        условно встраивает  в  систему.   Теги
                        построения являются   необязательными,
                        однако, когда  они  используются,  они
                        сперва должны появляться в теме.
  Знак фунта (#)        Контекстная строка - Определяет   кон-
                        текстную строку,   которая   уникально
                        идентифицирует тему.  Так  как  гипер-
                        текст основан на связях,  обеспечивае-
                        мых контекстными  строками,  темы  без
                        контекстных строк могут быть доступны-
                        ми только  посредством   использования
                        ключевых слов  или последовательностей
                        просмотра.
  Сноска в виде знака   Заголовок - Определяет заголовок темы.
  доллара ($)           Заголовки являются необязательными.
  Сноска в виде         Ключевое слово - Определяет   ключевое
  буквы "К"             слово, которое пользователь использует
                        для поиска темы.  Ключевые слова явля-
                        ются необязательными.
  Сноска в виде         Номер  последовательности  просмотра -
  знака плюс (+)        Определяет последовательность, которая
                        определяет порядок,  в котором пользо-
                        ватель может    просматривать    темы.
                        Последовательности просмотра  являются
                        необязательными. Однако,    если    Вы
                        опустите последовательности просмотра,
                        окно Help должно еще  включать  кнопки
                        Browse (просмотра),  однако они должны
                        быть  серыми.
  Зачеркивание или      Перекрестная ссылка - Указывает     на
  текст с двойным       текст,    который  пользователь  может
  подчеркиванием        выбрать для перехода на другую тему.
  Подчеркнутый текст    Определение - Определяет,  что  должны
                        выводится на  экран  временный прямоу-
                        гольник или "справочный" прямоугольник,
                        когда пользователь   нажимает   кнопку
                        мышки или клавишу Enter. Прямоугольник
                        может включать  такую информацию,  как
                        определение слова или фразы или  намек
                        на процедуру.
  Скрытый текст         Контекстная строка перекрестной ссылки
                        - Определяет строку контекста для темы,
                        которая должна выводится  на  дисплей,
                        когда пользователь выбирает текст, ко-
                        торый непосредственно предшествует ей.
  ───────────────────────────────────────────────────────────
     Если Вы используете теги построения,  вынесите их в самое
начало темы. Поместите другие сноски в любом желаемом порядке.
Более подробная  информация о присвоении специальных управляю-
щий кодов приведена в последующих разделах.

                 Присваивание тегов построения

     Теги построения являются строками, которые Вы присваивае-
те теме для того, чтобы условно включить или исключить эту те-
му из построения. Каждая тема может иметь один или более тегов
построения. Теги построения не являются необходимыми компонен-
тами Вашей Help системы.  Однако, они действительно предостав-
ляют средство  поддержки различных версий системы Help без не-
обходимости создания  различных  исходных  файлов  для  каждой
версии. Темы без тегов построения всегда включаются в построе-
ние. Вы вставляете теги построения в качестве сносок,  исполь-
зуя знак звездочки(*). Когда Вы присваиваете сноску тега пост-
роения теме,  компилятор включает или исключает тему в зависи-
мости от  информации  построения,  заданной  в BUILD опции и в
[Build Tags] разделе Help файла проекта.  Более подробная  ин-
формация об  опции  BUILD  в разделе [Build Tags] и Help файле
проекта содержится в главе 4 "Построение Help файла".
     Чтобы присвоить  тег построения теме:
     1. Поместите курсор в начало строки заголовка  темы  так,
чтобы он появлялся перед всеми другими сносками для этой темы.
     2. Вставьте звездочку (*)  в  качестве  метки  ссылки  на
сноску.
     Заметим, что звездочка (*) в  качестве  верхнего  индекса
появляется вслед за заголовком.
     3. Наберите имя тега построения в качестве сноски.
     Убедитесь, что  между  звездочкой и тегом построения есть
только один пробел.
     Теги построения  могут  составляться  из  любых  алфавит-
но-цифровых символов.Тег построения не является чувствительным
к регистру. этот тег не может содержать много пробелов. вы мо-
жете определить несколько тегов построения, отделяя их друг от
друга точкой с запятой, как в следующем примере:
         * AppVersion1; AppVersion2; Test_Build
     Включение сноски  тега построения  с темой  эквивалентно
установке для тега истинного значения  при сравнении со значе-
нием, установленном в файле проекта.  Компилятор предполагает,
что все другие теги построения имеют ложное значение для  этой
темы. После  установки  истинного  значения  для  сносок тегов
построения компилятор оценивает выражение построения в разделе
Options Help файла проекта.  Заметим,  что все теги построения
должны быть объявлены в файле  проекта,  независимо  от  того,
объявляет или нет заданная условная компиляция теги.  Если ре-
зультат проверки имеет истинное значение,  то компилятор вклю-
чает данную  тему в построение.  В противном случае компилятор
пропускает данную тему.
     Компилятор включает  во  все построения темы,  которые не
имеют сноску тега построения,  независимо от  выражений  тегов
построений, определенных  в Help файле проекта.По этой причине
у Вас может возникнуть необходимость использовать теги постро-
ения, главным  образом,  чтобы  исключить определенные темы из
некоторых построений.  Если компилятор находит любой тег пост-
роений, необъявленный  в Help файле проекта,  то он выводит на
экран сообщение об ошибке.
     Допуская условное  включение  и  исключение  определенных
тем, Вы можете создавать несколько построений,  используя оди-
наковые тематические файлы. то экономит время и затраты разра-
ботчиков Help системы.  Это также означает, что можно разрабо-
тать Help  темы,  которые  будут  помогать  поддерживать более
высокий уровень согласованности строк Вашего программного про-
дукта.

                 Присваивание контекстных строк

     Контекстные строки  идентифицируют  каждую  тему  в  Help
системе. Каждая контекстная строка должна быть уникальна.  За-
данной контекстной  строке  можно  присвоить  только одну тему
внутри Help проекта;  ее нельзя использовать для любой  другой
темы.
     Контекстная строка обеспечивает средства для создания пе-
реходов между  темами  или,  чтобы вывести на экран справочные
прямоугольники, например,  определение слова и фразы. Хотя это
не требуется,  большинство тем в Help системе будет иметь кон-
текстно-строковые идентификаторы.  Темы без контекстных  строк
не допускаются через гипертекстовые переходы. Однако, темы без
контекстно-строковых идентификаторов могут  допускаться  через
последовательности просмотров или поисков ключевых слов,, если
это нужно. Разработчик текста Help должен обосновывать санкци-
онирование тем,  к которым возможен доступ только этими спосо-
бами. Более подробная информация о присвоении переходов содер-
жится в  разделе  под  названием "Создание перекрестных ссылок
между темами".  Более  подробная  информация  о   присваивании
последовательностей просмотров содержится в разделе под назва-
нием "Присваивание  номеров  последовательностям  просмотров".
Более подробная информация о присваивании ключевых слов содер-
жится в разделе под названием "Присваивание ключевых слов".
     Для присваивания контекстной строки Help теме:
     1. Поместите курсор слева от заголовка темы.
     2. Вставьте знак фунта (#) как справочную метку сноски.
     Заметим, что знак фунта (#) в качестве  верхнего  индекса
появляется вслед за заголовком.
     3. Наберите контекстную строку в качестве сноски.
     Убедитесь в  том,  что  между  знаком фунта (#) и строкой
должен быть только один пробел.
     Контекстные строки не являются чувствительными к регистру.
     Правильные контекстные строки могут содержать  алфавитные
символы A  -  Z,  цифровые символы 0 - 9,  точку (.) и символы
подчеркивания (_).   Следующий    пример    показывает    кон-
текстно-строковую сноску, которая идентифицирует тему, назван-
ную "Opening an Existing Text File"  ("Открытие  существующего
текстового файла"):
            # OpeningExistingTextFile
     Хотя контекстная  строка  имеет практическое ограничение,
примерно 255 символов, нет разумного основания для приближения
к этому значению. Создавайте строки разумными и короткими так,
чтобы их было легче вводить в текстовые файлы.

                    Присваивание заголовков

     Сноски заголовков выполняют следующие функции в  пределах
Help системы:
     - Они появляются в меню Bookmark.
     - Они  появляются в "Topics found" списке,  который явля-
ется результатом поиска ключевого  слова.  (Темы,  которые  не
имеют заголовков, но доступны через ключевые слова, перечисля-
ются как >>Untitled Topic<< в списке обнаружений Topics.)
     Хотя это и не требуется, однако большинство тем имеет за-
головок. Вы можете не присваивать заголовок темам,  содержащим
информацию низкого уровня,  к которой не имеют доступ свойства
поиска, справочные прямоугольники и сообщения систем Help.
     Для того, чтобы присвоить заглавие теме:
     1. Поместите курсор слева от заголовка темы.
     2. Вставьте  сноску  со знаком доллара ($) как справочную
метку сноски.
     Заметим, что знак доллара в качестве верхнего индекса по-
является вслед за заголовком.
     3. Наберите заглавие в качестве сноски.
     Убедитесь, что между знаком доллара ($) и заглавием  дол-
жен быть только один пробел.
     Следующее выражение является примером сноски, которая оп-
ределяет заголовок для темы:
             $ Help Keys
     При добавлении заглавия помните о следующих ограничениях:

    Элемент            Ограничения
  ───────────────────────────────────────────────────────────
    Символы       Заголовки могут иметь в длину до 128  симво-
                  лов.
                  Компилятор  Help  отсекает строку заголовка,
                  имеющую длину больше 128 символов.
                  Система помощи выводит на дисплей заголовки
                  в прямоугольнике списка,  когда пользователь
                  ищет ключевое слово или вводит закладку.
     Форматиро-   Элементы сноски заголовка не могут  формати-
     вание        роваться.
  ───────────────────────────────────────────────────────────

                   Присваивание ключевых слов

     Help позволяет пользователю искать темы с помощью исполь-
зования ключевых слов,  присвоенных темам. Когда  пользователь
ищет слово посредством ключевого слова, Help сопоставляет вво-
димое пользователем слово с  ключевыми  словами,  присвоенными
особым темам. Затем Help перечисляет сопоставляемые темы по их
заголовкам в Search диалоговом окне.  Так как поиск  ключевого
слова часто  является быстрым способом получения пользователем
доступа к Help темам, то возможно, Вы пожелаете присвоить клю-
чевые слова большинству тем в Вашей Help системе.
     Примечание. Вы должны определить только сноску  ключевого
слова, если тема имеет сноску заголовка, так как заголовок те-
мы будет появляться в поисковом  диалоге,  когда  пользователь
ищет ключевое слово.
     Для того, чтобы присвоить ключевое слово теме:
     1. Поместите курсор слева от заголовка темы.
     2. Вставьте  прописную  букву  К,  как  справочную  метку
сноски.
     Заметим, что знак К в качестве верхнего  индекса  появля-
ется вслед за заголовком.
     3. наберите ключевое слово или ключевые слова в  качестве
сноски.
     Убедитесь в том,  что между знаком К  и  ключевым  словом
должен быть только один пробел.
     Если Вы добавляете более, чем одно ключевое слово, разде-
лите их точкой с запятой.
     Следующее выражение является примером  ключевых  слов для
темы:
       К open;opening;text file;ASCII;existing;text
       only;documents;
     Всякий раз, как пользователь выполняет поиск по любому из
этих ключевых слов, соответствующие заголовки появляются в ок-
не списка. Более, чем одна тема может иметь одно и то же клю-
чевое слово.
     При введении ключевых слов помните о следующих  ограниче-
ниях:
     Элемент           Ограничения
  ───────────────────────────────────────────────────────────
  Символы           Ключевые слова могут включать любой  сим-
                    вол  ANSI, включая символ  штриха. Макси-
                    мальная длина для ключевых слов равна 255
                    символов.
                    Пробел, включаемый в ключевую фразу  счи-
                    тается символом, что позволяет фразам быть
                    ключевыми словами.
  Фразы             Help ищет любое слово в определенной фра-
                    зе.
  Форматирование    Ключевые слова не форматируются.
  Чувствительность  Ключевые  слова не  чувствительны  к  ре-
  к регистру        гистру.
  Пунктуация        За исключением разделителей в  виде точки
                    с запятой Вы можете использовать  пункту-
                    ацию.
  ───────────────────────────────────────────────────────────

         Создание многочисленных таблиц ключевых слов

     Многочисленные таблицы ключевых слов пригодны для допуска
программы к поиску тем,  которые определяюся в  альтернативных
таблицах ключевых слов.  Вы можете использовать дополнительную
таблицу ключевых слов,  позволяющую пользователям,  знакомым с
ключевыми словами  в  других  программах,  обнаруживать  соот-
ветствующие ключевые слова в Вашей программе.
     Создаваемые дополнительные  таблицы  ключевых  слов - это
процесс из двух частей.  В первой части MULTIKEY опция  должна
помещаться в  разделе  [Options]  файла проекта.  Более полная
информация о MULTIKEY опции находится в разделе главы 4  "Мно-
гочисленные таблицы ключевых слов: Опция MULTIKEY".
     Во второй части темы, связанные с дополнительной таблицей
ключевых слов, должны создаваться и отмечаться. Сноски присва-
иваются таким же образом,  как и обычные сноски ключевых слов,
за исключением тех случаев,  когда используются буквы, которые
определяются опцией MULTIKEY.  С этой версией  Help  Compiler,
используемая сноска  ключевых  слов  чувствительна к регистру.
Поэтому нужно следить за использованием одинакового  регистра,
обычно прописного верхнего регистра, для Вашей сноски ключево-
го слова.  Убедитесь,  что только одна тема связана с ключевым
словом. Help не выводит на дисплей обычное диалоговое окно по-
иска для многократного поиска ключевого слова.  Вместо  этого,
она выводит  на дисплей первую тему,  обнаруживаемую с помощью
ключевого слова.  Если Вы желаете, чтобы темы в Вашей дополни-
тельной таблице ключевых слов появлялись в обычной Help табли-
це ключевых слов,  то Вы также должны определить сноску "К"  и
данное ключевое слово.
     Программа, разрабатываемая Вами для Help, может затем вы-
водить на экран Help тему,  связанную с данной строкой в опре-
деленной таблице ключевых слов. Ключевые слова сортируются без
учета регистра для таблицы ключевых слов.  Более подробная ин-
формация по параметрам, передаваемым программой для вызова те-
мы, находящейся в альтернативной таблице ключевых слов,  нахо-
дится в разделе главы 4 "Доступ к дополнительным таблицам клю-
чевых слов".

       Присваивание номеров последовательностям просмотра

     Browse>> и  Browse<< клавиши в прямоугольнике пиктограммы
в Help окне позволяют пользователю передвигаться назад и  впе-
ред между связанными темами. Порядок тем, прослеживаемый поль-
зователями при перемещении от темы к теме, называется "последо-
вательность просмотра". Последовательность просмотра определя-
ется номером последовательности,  установленным  разработчиком
текста Help.
     Для создания последовательностей просмотра в  Help  темах
разработчик текста должен:
     1. Решить какие темы должны группироваться вместе и какой
порядок они  должны  иметь,  когда  рассматриваются в качестве
группы.
     Help обеспечивает   многочисленные   прерывистые   списки
последовательностей.
     2. Закодировать темы для выполнения последовательности.
     Примечание. В  этой  версии  Help  темы,  определенные  в
последовательностях просмотров,   доступны  при  использовании
Browse клавиши в верхней части Help окна.  Будущие версии Help
обычно не  будут  выводить  на  дисплей  клавиши просмотра для
пользователя. Однако,  если Ваш Help  файл  ресурсов  включает
последовательности просмотра, созданные в описанном здесь фор-
мате, эти  будущие  версии  будут  обеспечивать  это  свойство
посредством автоматического   выведения   на   экран   клавиши
просмотра для пользователя.

          Организация последовательностей просмотра

     При организации последовательностей просмотра разработчик
текста должен организовывать темы в таком порядке,  чтобы соз-
давался смысл для пользователя. Темы могут выстраиваться в ал-
фавитном порядке  в  пределах темы,  в порядке повышения труд-
ности или в смысловом порядке,  который кажется   естественным
для данной программы. Следующий пример иллюстрирует последова-
тельности просмотра для команд  меню,  используемых  в  данной
программе. Разработчик  текста Help субъективно определяет по-
рядок, создающий наибольший смысл с процедурной точки  зрения.
Конечно, Вы можете избрать другой порядок.
     SampleApp Commands
         File Menu - commands:005
            New Command - file_menu:005
            Open Command - file_menu:010
            Save Command - file_menu:015
            Save As Command - file_menu:020
            Print Command - file_menu:025
            Printer Setup Command - file_menu:030
            Exit Command - file_menu:030
         Edit Menu - commands:010
            Undo Command - edit_menu:025
            Cut Command - edit_menu:015
            Copy Command - edit_menu:010
            Paste Command - edit_menu:020
            Clear Command - edit_menu:005
            Select All Command - edit_menu:030
            Word Wrap Command - edit_menu:035
            Type Face Command - edit_menu:040
            Point Size Command - edit-menu:045
         Search Menu - commands:015
            Find Command - search_menu:005
            Find Next Command - search_menu:010
            Previous Command - search_menu:015
         Window Menu - commands:020
            Title Command - window_menu:005
            Cascade Command - window_menu:010
            Arrange Icons Command - window_menu:015
            Close All Command - window_menu:020
            Document Names Command - window_menu:025
     Каждая строка  состоит  из  имени  списка  последователь-
ности , за которым следует двоеточие  и  номер  последователь-
ности. Имя списка последовательности  является необязательным.
Если последовательность не имеет имени списка, как в последую-
щем примере, компилятор помещает тему в "пустой" список:
       Window Menu - 120
     Заметим, что используемые номера в примере последователь-
ности просмотра начинаются с 005 и наращиваются на 005.  Обыч-
но, хорошей  практикой является перескок на один или более но-
меров последовательности так, чтобы Вы могли позже, если необ-
ходимо, добавить новые темы. Пропущенные номера не имеют  зна-
чения для Help Compiler, важен только их порядок.
     Номера последовательностей  устанавливают  порядок  тем в
пределах списка последовательностей просмотра. Номера последо-
вательностей могут состоять из любых алфавитно-цифровых симво-
лов. Во  время  процесса  компилирования  строки  сортируются,
используя ASCII   методику  сортировки,  которая  не  является
числовой сортировкой.
     Как алфавитные,  так  и цифровые части последовательности
могут состоять из нескольких символов; однако, их длина должна
быть согласована по всем тематическим файлам.  Если Вы исполь-
зуете только номера в строках, убедитесь, что все строки имеют
одну и  ту же длину;  в противном случае,  более высокий номер
последовательности мог бы появиться перед более низким номером
последовательности в определенных случаях. Например, номер 100
в цифровом значении выше,  чем 99, однако 100 будет появляться
перед 99  при сортировке,  используемой Help,  потому что Help
сравнивает первые две цифры в строках.  Для того, чтобы сохра-
нить темы  в их точном цифровом порядке,  Вы должны сделать 99
трехцифровой строкой: 099.

          Кодирование последовательностей просмотра

     После определения как группировать и упорядочивать  темы,
закодируйте последовательность  посредством  присвоения  соот-
ветствующего имени списка последовательности и  номера  каждой
теме, как следует ниже:
     1. Поместите курсор слева от заголовка темы.
     2. Вставьте знак плюс (+), как справочную метку сноски.
     Заметим, что знак плюс (+) в  качестве  верхнего  индекса
появляется вслед за заголовком.
     3. Наберите номер последовательности,  используя алфавит-
но-цифровые символы.
     Например, следующая сноска  определяет  номер  последова-
тельности просмотра для темы меню Edit в предшествующем приме-
ре последовательности просмотра:
              + commands:010
     Хотя может быть более легким перечисление тем в  пределах
файла в  том  же  самом  порядке,  в  котором они появляются в
последовательности просмотра,  но в  этом  нет  необходимости.
Компилятор сам упорядочивает последовательность.

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

     Перекрестные ссылки  или  "переходы"  являются специально
закодированными словами или  фразами,  которые  связываются  с
другими темами. Хотя Вы указываете термины перехода зачеркива-
нием или двойным подчеркиванием в тематическом файле,  они по-
являются в Help окне подчеркнутыми.  В дополнение к этому тер-
мины перехода появляются в цвете на цветных  системах.  Напри-
мер, зачеркивание  (двойное  подчеркивание в Word для Windows)
появляется как New Command в зеленом тексте для пользователя.
     Для того,  чтобы  закодировать слово или фразу в качестве
перехода в тематическом файле:
     1. Поместите курсор в точке текста, где Вы желаете ввести
термин перехода.
     2. Выберите свойство зачеркивания (или двойного подчерки-
вания) Вашего редактора.
     3. Наберите  слово  перехода  или слова перехода в режиме
зачеркивания.
     4. Отключите  зачеркивание и выберите свойство редактора,
позволяющее скрывать текст.
     5. Наберите контекстную строку,  присваиваемую теме,  ко-
торая является целью перехода.
     При кодировании переходов помните, что:
     - Между зачеркнутым  (или  подчеркнутым  двойной  линией)
текстом и скрытым текстом не должно быть пробелов.
     - Закодированные пробелы перед или после терминов перехо-
да не допустимы.
     - Метки параграфов должны вводится как простой текст.

                     Определение терминов

     Большинство тематических содержат слова или фразы,  кото-
рые требуют дальнейшего определения.  Чтобы получить определе-
ние слова или фразы,пользователь вначале выбирает слово,а  за-
тем нажимать на кнопку мышки или клавишу Enter,  вызывая появ-
ление определения в окне внутри Help окна.  Разработчик текста
Help решает какие слова определить, учитывая категорию пользо-
вателей,  которые будут использовать это  приложение  и  какие
термины могут  уже быть знакомыми.
     Примечание. Свойство поиска нельзя ограничивать определе-
ниями. С помощью возможности временного выведения информации в
окне, Вы можете посмотреть подсказку по процедуре  или  другую
подходящую информацию для пользователя.
     Определение термина требует, чтобы Вы:
     - Создали тему, которая определяет этот термин.
     Определяемая тема  должна  включать  контекстную  строку.
Смотрите раздел "Присваивание контекстных строк".
     - Обеспечили перекрестную ссылку  для  определения  темы,
когда бы не встретился этот термин.
     Вам не нужно определять одно и то же слово несколько  раз
в одной и той же теме,  кроме его первого появления. Кроме то-
го, примите во внимание количество цветного текста,  создавае-
мого в Help окне.
     Смотрите следующий раздел "Кодирование определений".

                   Создание тем определений

     Вы можете организовать темы определений  любым  способом.
Например, Вы можете включить в каждую тему определений темати-
ческий файл,  который упоминает термин. Или можно организовать
все определения  в одном тематическом файле и обеспечить поль-
зователя непосредственным доступом к нему.  Helpex  использует
последний метод, все определения содержатся в TERMS.RTF файле.
Организация тем определений в один файл обеспечивает Вас  сло-
варем и позволяет легко производить изменения.

                    Кодирование определения

     После того,  как  созданы  темы определений,  закодируйте
термины, по мере их появления, следующим образом:
     1. Поместите точку вставки там,  где Вы желаете поместить
термин,который требует определения.
     2. Выберите свойство подчеркивания Вашего редактора.
     3. Наберите термин.
     4. Отключите  свойство  подчеркивания и выберите свойство
редактора по созданию невидимого текста.
     5. Наберите контекстную строку, присвоенную теме, которая
содержит определения термина.
     Рисунок 3.2 включает определение термина "clipboard" (бу-
фер вырезанного изображения).
         Рисунок 3.2 Определение, как оно появляется
                        в окне поиска
╔═[■]══════════════════════════════════════════════[°][∙]═╗
║        winhelp Windows Help  -  WINHELP.HLP             ║
║─────────────────────────────────────────────────────────║
║ File  Edit  Bookmark  Help                              ║
║─────────────────────────────────────────────────────────║
║ Index  Back  Browse  Browse  Search                     ║
║─────────────────────────────────────────────────────────║
║           или нажмите клавишу или комбинацию клавиш, о  ▒
║           которых Вы хотите узнать более подробно       ▒
║           Это свойство доступно только в определенном   ■
║          ┌─────────────────────────────────────────────────┐
║          │  Clipboard (буфер вырезанного изображения)      │
║          │  Зона временного хранения для удаляемых или     │
║          │  копируемых текста или графики. Вы можете встав-│
║          │  лять содержание этого буфера в Windows програм-│
║          │  му.                                            │
║          └─────────────────────────────────────────────────┘
║ Ctrl+Ins   Копирует Help тему в Clipboard, таким образом▒
║            Вы можете вставлять ее в другую программу или▒                                             ▒
║            документ.                                    ▒
║ Alt+F4     Закрывает Help окно.                         ▒
╚<■▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒>─┘

               Вставка графических изображений

     Растровые графические изображения можно помещать в  Help
темы, используя один из двух методов. Если Ваша система подго-
товки текстов обеспечивает вставку Windows 2.1 или Windows 3.0
графики непосредственно в документ,  то Вы можете просто вста-
вить Ваши растры в каждый тематический файл. Альтернативно, Вы
можете сохранить  каждый  растр в отдельном файле и определить
файл по имени в том месте, где Вы желаете, чтобы он появился в
Help тематическом файле. Второй из этих методов вставки графи-
ки называется "растры посредством ссылок". В следующем разделе
описывается процесс   вставки   растров   непосредственно  или
посредством ссылки в Ваши Help темы.

                  Создание и захват растров

     Вы можете создать Ваши  растры,  используя  любые  графи-
ческие средства,  пока  получаемые изображения могут выводится
на дисплей в Windows среду. Затем каждое графическое изображе-
ние может  копироваться  в Windows буфер вырезанного изображе-
ния. Будучи в буфере вырезанного  изображения,  графика  может
вставляться в графический редактор,  такой как Paint и модифи-
цироваться или доводиться, когда необходимо.
     Windows Help 3.0 обеспечивает цветной растр.  Однако, для
будущей совместимости у Вас может возникнуть необходимость ог-
раничить графику монохромным форматом. Если Вы создаете монох-
ромное изображение,  то  Вам,  возможно,  потребуется  вручную
настраивать элементы  исходной графики,  которые первоначально
отличались цветами, были черными, белыми или комбинацией белых
и черных пикселов.
     Когда вы удовлетворены внешним видом  растра,  Вы  можете
или сохранить  его как файл,  чтобы использовать его как растр
по ссылке, или можно скопировать его в буфер вырезанного изоб-
ражения и  вставить его в систему подготовки текстов.  Если Вы
сохраняете графику как файл,  то необходимо вначале задать его
размер в графическом редакторе так,  чтобы только интересующая
область сохранялась для вывода на экран в Help окне. Чем более
плотно Вы  заполняете  Ваше  изображение,  тем более близко Вы
должны разместить текст,  следующий  за  изображением.  Всегда
сохраняйте (или  преобразуйте  и сохраняйте,  если необходимо)
графику Windows в .BMP формате.
     Растровые изображения  должны создаваться в том же экран-
ном режиме,  который Вы предназначаете для использования Help,
когда темы выводятся на экран. Если Help файлы будут выводится
на экран в различных режимах,  то растры не  смогут  сохранять
одинаковое соотношение аспектов или информацию,  как их исход-
ные изображения.

             Размещение растров с использованием
            графических систем подготовки текстов

     Простейшим способом для точного размещения растров в Help
темах является использование  графической  системы  подготовки
текстов. Microsoft Word для Windows обеспечивает прямое импор-
тирование растров из буфера  вырезанного  изображения.  Просто
вставляйте графическое  изображение  там,где Вы хотите,  чтобы
оно появлялось в Help теме. Вы можете форматировать текст так,
чтобы он располагался ниже или вдоль растра. Когда Вы сохраня-
ете Help тематический файл в RTF файл, вставляемый растр также
преобразуется и  будет  автоматически  включаться  в Help файл
ресурса.

            Размещение растров посредством ссылки

     Если Ваша система подготовки текста на  может  импортиро-
ваться и выводиться на экран непосредственно, то Вы можете за-
дать расположение этого растра, который Вы сохранили как файл.
Чтобы вставить  ссылку  на  растр  в  Help тематическом файле,
вставьте одно из следующих предложений туда,  где  Вы  хотите,
чтобы растр появился  в теме:
     {bmc filename.bmp}
     {bml filename.bmp}
     {bmr filename.bmp}
     Примечание. Не задавайте полный путь для filename .  Если
Вам необходимо направить компилятор к растру в позиции, отлич-
ной от корневого справочника для построения,  то задайте абсо-
лютный путь для растра в разделе [Bitmaps] файла проекта.
     Аргумент bmc означает "растровый символ",  указывая,  что
растр, на который есть ссылка,  будет обрабатываться также как
символ, помещенный  в  тематическом  файле в той же позиции на
строке. Текст может предшествовать или следовать за растром на
той же  строке и длина строки будет определяться в зависимости
от размера символов (включая символ растра) на строке.  Не за-
давайте отрицательную длину строки для параграфа с изображени-
ем растра,  иначе изображение  может  неумышленно  перекрывать
текст над ним, когда изображение выводится на экран Help. Ког-
да Вы используете аргумент  bmc,  нет  автоматического  цикли-
ческого перехода текста в графическом изображении. Текст будет
следовать за растром, расположенным в основной линии.
     Аргумент bml  определяет,  что  растр появляется на левой
границе с автоматическим циклическим переходом текста на  пра-
вой границе  изображения.  Аргумент bmr определяет,  что растр
появляется на правой границе с текстом,  находящимся слева  от
него. Имена файлов растра должны быть такие же, как в списке в
разделе [Bitmaps] Help файла проекта.  Раздел [Bitmaps] описан
в главе 4 "Построение Help файла".
     Примечание. Многочисленные ссылки на растр одного и  того
же имени относятся к одному и тому же растру при выводе на эк-
ран Help файла. Это означает, что растровые ссылки могут появ-
ляться в  Вашей  Help системе без заметного увеличения размера
Help файла ресурсов.
     На рисунке  3.3  показано размещение трех растров со свя-
занным текстом в теме при выводе на экран в Help.
            Рисунок 3.3 Help тематический дисплей,
            показывающий растры посредством ссылки
 ╔═[■]════════════════════════════════════════════════[°][∙]═╗
 ║                       Help Example                        ║
 ║────────────╔═[■]════════════════════════════════[°][∙]═╗──║
 ║ File  Edit ║     Help Example Help - helpex            ║  ║
 ║────────────║───────────────────────────────────────────▒──║
 ║            ║  File Edit Bookmark Help                  ▒  ║
 ║            ║───────────────────────────────────────────▒  ║
 ║            ║ Index Back Browse Browse Search           ▒  ║
 ║            ║───────────────────────────────────────────▒  ║
 ║            ║Bitmaps by Reference                       ■  ║
 ║            ║                                           ▒  ║
 ║            ║Растр может помещаться в последовательности▒  ║
 ║            ║точно так же как любой другой символ       ▒  ║
 ║            ║  WinWord                                  ▒  ║
 ║            ║   Вы также можете поместить растр у левого▒  ║
 ║            ║   поля Help окна.Текст будет автоматически▒  ║
 ║            ║   циклически переходить на правой границе ▒  ║
 ║            ║   растра.                                 ▒  ║
 ║            ║Или  растр может  находится у правого поля ▒  ║
 ║            ║окна,а текст будет автоматически циклически▒  ║
 ║            ║переходить у левого края.                  ▒  ║
 ║            ╚═══<■▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒>─┘  ║
 ║                                                           ║
 ╚══════════════════════════════════════════════════════════─┘

               Управление тематическими файлами

     Help тематические файлы могут сохраняться в  определенном
графическом формате  системы подготовки текстов или в RTF.Если
Вы всегда сохраняете файлы в RTF,а позже Вам  необходимо  сде-
лать изменение  ,то система подготовки текстов может предоста-
вить дополнительное время для интерпретирования  формата,когда
он перезагружает  файл.Если  Вы  предчувствуете многочисленные
изменения во время Help разработки,то может возникнуть необхо-
димость минимизировать эти задержки посредством сохранения те-
матических файлов как в определяемом по умолчанию  формате,так
и в RTF формате с различными расширениями файлов для их разли-
чия.Компилятору требуется только RTF файлы и Вы  будете  иметь
более быстрый доступ к исходным файлам для изменений.Для боль-
шого проекта эта практика может сохранить  значительное  коли-
чество времени разработки.

                  Отслеживание файлов и тем

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

                 Создание Help трассировщика

     Хотя важно,  чтобы  Вы трассировали тематические файлы во
время цикла разработки,  средство трассировки может быть любым
подходящим для Ваших потребностей. Вы можете сохранить текущий
список тем в ASCII текстовом файле,  в Quattro Pro электронной
таблице или в другом формате.
     Когда Вы или другой разработчик текста создаете или  исп-
равляете тему,  Вы должны модифицировать Help файл трассировки
для отражения изменения.  Содержание файла трассировки опреде-
лено не  жестко,  но  должно содержать записи для имени файла,
контекстную строку, заголовок, последовательность просмотров и
ключевые слова.   Если  ваша  программа  содержит  контекстно-
чувствительное свойство Help, то, возможно, Вы захотите отсле-
дить контекстно-чувствительную информацию.Этот элемент необхо-
дим только если Вы присваиваете номера контекста темам в  Help
файле проекта.  Можно  также  включить необязательную информа-
цию, например,  созданные данные, модифицированные данные, ин-
формацию о  статусе  и  авторе,  если Вы хотите проследить все
аспекты процесса разработки системы Help.  Как Вы  организуете
эту информацию зависит только от Вас.
     Следующий пример текстового файла и  рабочий  листок  ил-
люстрируют как  трассировщик  должен  быть организован для тем
Help системы.  Примеры  показывают  и  меню   Help,   и   кон-
текстно-чувствительные Help записи тематических файлов. Типич-
но, одни и те же темы,  к которым пользователь имеет доступ во
время команды выбора из Help меню, могут быть доступными с по-
мощью контекстно-чувствительного свойства Help. Темы с запися-
ми в  контекстной  колонке идентификации используются для кон-
текстно-чувствительной помощи, а также для Help меню. Заметим,
что некоторые    темы   имеют   более   одного   номера   кон-
текстно-чувствительной помощи.  Это дает возможность  выводить
темы на  экран,  когда  пользователь  нажимает кнопку мышки на
различных районах экрана.
      Рисунок 3.4 Пример текстового файла трассировщика

Ctx.String    Title               Browse Seg.   Key Words
hlpidx_idx_mp Multipad Help Index
mc_cmd_mp     Multipad Commands   commands:0001 commands;menus
fm_cmd_mp     File Menu           commands:0004 commands;menus;files;
                                                documents
nc_cmd_mp     New command         commands:0008 commands;new files;
                                                new documents
oc_cmd_mp     Open Command        commands:0012 commands;files;open;
                                                documents;read only
sac_cmd_mp    Save Command        commands:0016 commands;file;save;save as;
                                                documents;files
sasc_cmd_mp   Save As Command     commands:0020 commands;file;save as;save;
                                                documents;files
ptc_cmd_mp    Print Command       commands:0024 commands;files;print;
                                                document;files
psc_cmd_mp    Print Setup Command commands:0028 commands;file;printer setup;
                                                print

    Рисунок 3.5 Пример рабочего листка Help трассировщика
┌──┬─────────────┬───────────────────┬─────────────┬───────────────────────────┬─
│  │     A       │        B          │      C      │           D               │
├──┼─────────────┼───────────────────┼─────────────┼───────────────────────────┼─
│ 1│Ctx.String   │Title              │Browse Seg.  │Key Words                  │
├──┼─────────────┼───────────────────┼─────────────┼───────────────────────────┼─
│ 2│hlpidx_idx_mp│Multipad Help Index│             │                           │
├──┼─────────────┼───────────────────┼─────────────┼───────────────────────────┼─
│ 3│mc_cmd_mp    │Multipad Commands  │commands:0001│commands;menus             │
├──┼─────────────┼───────────────────┼─────────────┼───────────────────────────┼─
│ 4│fm_cmd_mp    │File Menu          │commands:0004│commands;menus;files;      │
├──┼─────────────┼───────────────────┼─────────────┼───────────────────────────┼─
│ 5│             │                   │             │documents                  │
├──┼─────────────┼───────────────────┼─────────────┼───────────────────────────┼─
│ 6│nc_cmd_mp    │New command        │commands:0008│commands;new files;        │
├──┼─────────────┼───────────────────┼─────────────┼───────────────────────────┼─
│ 7│             │                   │             │new documents              │
├──┼─────────────┼───────────────────┼─────────────┼───────────────────────────┼─
│ 8│oc_cmd_mp    │Open Command       │commands:0012│commands;files;open;       │
├──┼─────────────┼───────────────────┼─────────────┼───────────────────────────┼─
│ 9│             │                   │             │documents;read only        │
├──┼─────────────┼───────────────────┼─────────────┼───────────────────────────┼─
│10│sac_cmd_mp   │Save Command       │commands:0016│commands;file;save;save as;│
├──┼─────────────┼───────────────────┼─────────────┼───────────────────────────┼─
│11│             │                   │             │documents;files            │
├──┼─────────────┼───────────────────┼─────────────┼───────────────────────────┼─
│12│sasc_cmd_mp  │Save As Command    │commands:0020│commands;file;save as;save;│
├──┼─────────────┼───────────────────┼─────────────┼───────────────────────────┼─
│13│             │                   │             │documents;files            │
├──┼─────────────┼───────────────────┼─────────────┼───────────────────────────┼─
│14│ptc_cmd_mp   │Print Command      │commands:0024│commands;files;print;      │
├──┼─────────────┼───────────────────┼─────────────┼───────────────────────────┼─
│15│             │                   │             │document;files             │
├──┼─────────────┼───────────────────┼─────────────┼───────────────────────────┼─
│16│psc_cmd_mp   │Print Setup Command│commands:0028│commands;file;printer setup│
├──┼─────────────┼───────────────────┼─────────────┼───────────────────────────┼─
│17│             │                   │             │print                      │
├──┼─────────────┼───────────────────┼─────────────┼───────────────────────────┼─

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

                      Резюме

     В этой главе описывалось как разрабатывать,  кодировать и
отслеживать Help тематические файлы.  Более подробная информа-
ция о  построении Help файла дается в главе 4 "Построение Help
файла".













