Контекстная помощь
Для иллюстрации техники использования средств модуля HelpFile рассмотрим следующий пример. Пусть текст справочной службы помещен в файл HelpTest.txt и имеет следующий вид:
.topic NoContext=0 Добро пожаловать в справочную службу системы Turbo Vision!
В текстовом файле для справочной службы Вы должны подготовить {заголовки тем: topic} и {перекрестные ссылки: CrossRef}. Весь текст от одного заголовка до другого представляет собой текст справки и выводится в окне справочной службы. При подготовке текста учитываются следующие соглашения:
- если очередная строка начинается символом пробел, эта строка не будет форматироваться с учетом границ окна;
- во всех остальных случаях выводимый в окне текст форматируется с учетом границ окна: слово, не умещающееся на строке, переносится на следующую строку экрана. Для преобразования текстового файла в файл справочной службы вызывается программа TVHC.EXE:
TVHC NAMETXT [NAMEHELP [NAMEPAS]]
Здесь:
- NAMETXT – имя исходного текстового файла;
- NAMEHLP – имя выходного файла справочной службы;
- NAMEPAS – имя выходного файла, содержащего текст PAS-модуля с определением всех контекстов в виде констант chXXXX.
Имя файла NAMEHELP можно не указывать – в этом случае выходной файл будет иметь имя входного файла и расширение HLP. Если не указан файл HELPPAS, будет создан файл с именем исходного и расширением PAS.
По умолчанию программа использует расширение ТХТ для входного файла, HLP для выходного файла справочной службы и PAS – для файла констант. .topic Topic=1. Заголовок темы имеет следующий формат:
.topic Name[=N] [, Name1[=N2] […]]
Здесь:
- Name – имя темы (может состоять только-из латинских букв и цифр; разница в высоте букв игнорируется);
- N – контекст справочной службы, при котором выдается данная справка.
В квадратных скобках показаны необязательные параметры. Если опущен контекст N, программа присваивает соответствующей перекрестной ссылке контекст NPrev + 1, где NPrev – предыдущий определенный в программе контекст:
..topic CrossRef=2
В произвольное место текста справки можно вставить так называемую перекрестную ссылку:
(text[:title])
Здесь:
- () – фигурные скобки;
- text – произвольный текст или заголовок темы;
- title – заголовок темы; этот параметр вместе с двоеточием опускается, если text – заголовок темы.
Если Вы подготовите такой файл, то после вызова:
tvhc helptest
Будут созданы два файла: файл справочной службы helptest.hlp и файл модуля с определениями констант helptest.pas. Содержимое этого последнего файла будет таким:
unit helptest; interface const hcCrossRef = 2; hcNoContext= 0; hctopic = 1; implementation end.