Разработка справочной системы (создание файлов .hip)______________459

Впрочем, и в более ранних версиях WinHelp, даже в Windows З.х имелся мак-
рос ExecProgram, позволяющий запускать внешние программы.

Не останавливаясь детально на синтаксисе макросов, описанном в справке по
подготовке Help, рассмотрим несколько примеров.

Приведенный ниже оператор создает кнопку, при нажатии на которую запус-
кается элемент «Контрольной Панели» Дата/время.

{button Дата/время, ControlPanel(Timedate))

Следующий оператор создает кнопку, при нажатии на которую запускается
программа Windows «Калькулятор».

{button Калькулятор, ExecFile(Calc.exe))

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

(button Topics.rtf, ExecFile(Topics.rtf))

Следующий оператор проверяет, есть ли на компьютере файл приложения ту-
арр.ехе. Если есть, то это приложение запускается. В противном случае осуществ-
ляется переход на тему с идентификатором install.

IfThenElse(FileExist(myapp.exe), ExecFile(myapp),
Jumpld. (install_my app))

Ряд макросов связан с созданием кнопок в полосе кнопок заголовка окна
справки или с созданием разделов меню, не предусмотренных по умолчанию в
справочной системе. Эти макросы обычно выполняются при открытии справки и
включаются в описанный в следующем разделе файл Проекта справки, хотя кноп-
ки и разделы меню могут создаваться или уничтожаться и в отдельных темах
справки. Приведем примеры таких макросов.

Макрос

BrowseButtons()

создает в полосе кнопок заголовка окна справки кнопок просмотра вперед и назад
(кнопки » и «). Эти кнопки обычно имеет смысл включать только при исполь-
зовании в темах сносок упорядочивания +.

Макрос CreateButton создает в полосе кнопок заголовка окна справки новую
кнопку с указанным именем, соответствующую указанному макросу. Синтаксис
макроса CreateButton следующий:

CreateButton("<идентификатор>", "<надпись>", "<макрос>")

Здесь <идентификатор> — внутренний идентификатор кнопки (произволь-
ный), который можно использовать, если вы потом захотите, например, в каких-то
темах удалить эту кнопку. <надпись> — это то, что будет написано на кнопке. А
<макрос> — тот макрос, который будет выполняться при щелчке на этой кнопке.
Например, макрос

CreateButton("History", "&История", "History()")

создаст кнопку с надписью История, при щелчке на которой будет выполняться
макрос History(), отображающий окно со списком до сорока последних тем, про-
смотренных пользователем. Из этого списка пользователь может выбрать тему, к
которой он хочет вернуться.

В заключение приведем несколько макросов, позволяющих добавлять новые
меню и разделы в полосу меню окна справки. Первый из этих макросов — Insert-
Menu, добавляющий новое меню. Его синтаксис:

InsertMenu('^идентификатор меню>","<надпись>",<номер>)