Создание файла помощи. |
|||||
Банников Н.А. | www.stikriz.narod.ru | Почта | На главную страницу |
Нормой можно считать обязательное включение в программу файла помощи. Файл помощи – это гипертекст, который может через специальную службу операционной системы открываться на нужной странице или предоставлять необходимую информацию по запросу от программы пользователя. Создание файла помощи состоит из нескольких этапов. Вначале создается текст в формате RTF, который и будет содержать образ файла помощи, как он будет виден пользователю. В этот файл необходимо включить специальные управляющие директивы. Эти директивы организованы в виде сносок. Вы можете включить в файл как текст, так и изображения в виде BMP картинок или изображения – ссылки в виде модифицированных BMP файлов, приведенных к SHG файлам, в которых можно вставить одну или несколько ссылок на другое место в файле помощи. Затем, Вам нужно создать файл оглавления и файл проекта помощи. Эти файлы создаются с помощью утилиты hcw.exe, поставляемой вместе с Delphi. У меня она установлена в каталоге: … Program Files\Borland\Delphi4\Help\Tools\.
Начнем с создания RTF файла. Запустите MS Word, и сохраните автоматически созданный пустой файл под именем PlatPor.rtf. Нам нужно создать несколько страниц, которые будут страницами помощи. Создадим страницу оглавления. Вот как она может выглядеть:
Чтобы пользователь видел на экране только эту страницу сразу, вставьте разрыв страницы (Ctrl\Enter). Заголовок нужно пометить как Заголовок1, остальные строки –Обычный. Далее, нужно создать несколько страниц по числу ссылок. Т.е. Вам нужно создать шесть страниц с заголовками как в оглавлении. Заголовки нужно пометить как Заголовок2. Текст помощи должен начинаться от заголовка спустя 2 строчки. Проследите, чтобы между разрывом страницы и заголовком не было перевода строки, иначе заголовок будет неправильно восприниматься службой подсказки операционной системы. На других страницах Вы можете организовать либо текст либо вложенное оглавление, как на первой странице. Когда заготовка готова, можно разметить темы. Разметка состоит в том, что темы помечаются сносками специального типа. Установите курсор перед заголовком, и выберите пункт меню Вставка/Сноска. Сноска должна быть обычной и другой. Вы введете нужный символ в строке ввода символа и нажмете кнопку Ok. Так вставляются сноски. Есть несколько типов сносок. Я, в своей работе, использую только 4 вида. Знак доллара – это наименование темы. Здесь нужно по английски завести наименование темы, знак + определяет порядок просмотра текста подсказки кнопками Вперед и Назад, если они разрешены ( << , >>). Знак # определяет идентификатор, который может использоваться для создания ссылки на тему для перехода по щелчку. Знак K (по английски) определяет слово, которое пользователь видит на закладке Предметный указатель в оглавлении справки. Для начала, эту сноску вставлять не нужно. Мы будем вставлять ее после записи текста, т.к. эта сноска определяется для поиска по тексту справки. Итак, набираем символ $ и нажимаем Ok. Откроется окно сносок внизу программы, и курсор будет стоять за сноской. Не нажимая более никаких управляющих клавиш, сразу набираем "Cont" – это будет имя темы.
Далее, вставим сноску +. В файле помощи может быть несколько нумераций. Сначала, идет имя нумерации, затем двоеточие и номер. Вставим сноску #. Ее текст – ID_CONT мы будем использовать для переходов на оглавление. На картинке Вы видите, что текст подчеркнут двойной линией. Вам, пока, необязательно это делать. Все три типа сносок нужно дать всем заголовкам в тексте помощи. Вы можете просмотреть оригинальный файл созданный мной для примера. Далее, Запишем сразу без разрыва после строчек оглавления идентификаторы тем. Выделим строчку оглавления и присвоим ей шрифт с двойным подчеркиванием. Это покажет компилятору помощи, что строка является ссылкой на другую тему. Идентификатор темы, сразу за ссылкой, нужно пометить как невидимый текст. Проследите, чтобы символ перевода строки не пометился как невидимый, иначе ссылки будут располагаться не так, как Вы видите на экране. Если Вы выделите ссылку двойным подчеркиванием, то по щелчку на ней будет произведен переход на другую страницу с нужной темой. Если Вы пометите ссылку одинарным подчеркиванием, то тема будет показана на всплывающем окне без перехода. Как только вы еще раз щелкните мышью, всплывающее окно закроется, а Вы останетесь в той же теме, где и были. Нам нужно пометить все ссылки двойным подчеркиванием, т.к. эта страница – оглавление и служит для перехода на другие страницы. Вы можете выделить заголовки страниц цветом. Не имеет смысла выделять ссылки другим цветом, т.к. они все равно будут зелеными. Вы, так же, можете выделять цветом нужные участки текста.
В конец файла помощи можно вставить короткие темы, которые будут показаны пользователю из программы в качестве всплывающих подсказок, если он выберет в диалоговом окне курсор с вопросом и ткнет им в непонятный интерфейсный элемент. Эти темы будут иметь только идентификаторы. Они будут недоступны из файла помощи при его просмотре пользователем.
Если Вы создали
все темы и ссылки на них, можно попробовать
скомпилировать файл помощи, чтобы
посмотреть правильность перехода по
ссылкам. Запустите Microsoft Help Workshop и выберите пункт меню File/New.
В появившемся диалоговом окне выберите
создание файла оглавления. Сразу же нажмите
кнопку Edit. Default File Name – Platpor.hlp. Default Window – MAIN. Default Title
– ID_CONT. Это означает, что мы хотим
вставить оглавление в файл Platpor.hlp,
что окно по умолчанию – MAIN,
которое мы опишем потом, что страничка
открывающаяся по умолчанию или при
возникновении ошибки – тема ID_CONT,
т.е. наше оглавление. Далее, нужно добавить
пункты меню. Раскрывающиеся пункты – это Heading.
В них нужно задавать только название.
Каждое меню должно начинаться с
раскрывающегося списка, иначе пункты меню
будут неправильно отображаться. Ссылка на
тему – Topic.
Здесь нужно задать название, идентификатор
(ID_…), имя
файла помощи, если их несколько, тип окна,
если определено несколько типов. Т.к. у нас
только один файл и один тип окна, то
задавать эти параметры не нужно. Add
Above – добавить сверху активного пункта, Add Below – добавить снизу активного
пункта. Этими кнопками нужно добавлять
пункты. Далее, пункты нужно сдвигать так,
чтобы они правильно отображались. Т.е.
подпункты сдвигаются правее. Вот что у нас
должно получиться в конце работы:
Запишем полученный файл на диск под
именем Platpor.cnt. в директории, где мы создали
текст помощи. Далее, нужно создать проект.
Опять выбираем пункт меню File/New,
а далее выбираем создание файла проекта.
Нажимаем кнопку Options.
Вот как можно заполнить странички опций
проекта:
Мы указали тему по умолчанию – оглавление.
Добавим к этому только то, что компрессию лучше установить в максимум, а везде, где есть упоминания о языке – русский. Это на закладках Compression, Sorting и Fonts. Остальные закладки изменять не нужно. Нажмем Ok. Кнопкой Files добавьте к проекту RTF файл с образом справки. Кнопкой Windows создайте окно MAIN с позицией и размерами по умолчанию. Цветовую гамму можно подобрать как Вам захочется. Кнопкой Bitmaps нужно указать директорию с картинками, которые Вы будете вставлять в файл помощи. Кнопкой Map можно задать числовые идентификаторы символьным. Помните, я вставил в конец файла темы с идентификаторами. Вот теперь, нам нужно дать этим идентификаторам числовое представление, т.к. в Delphi компоненты имеют именно числовые свойства HelpContext. Вот как это получилось у меня:
Я задал числовые идентификаторы еще и
нескольким темам, где описывается работа со
справочником и окном редактирования
платежек. Сохраним наш файл проекта в
директории, где мы сохранили оглавление и
текст помощи под именем Platpor.hpj.
Вот что у нас должно получиться:
Далее, нажмем кнопку Save and compile. Будет создан файл помощи, который можно открыть и просмотреть как он работает. Проследите, чтобы при компиляции текст образа файла помощи не был открыт в MS Word, т.к. может произойти ошибка совместного доступа к файлу. После создания файла помощи, Вам нужно пройтись по всем ссылкам и просмотреть все темы, чтобы убедится, что все работает нормально. Далее, при изменении в текстовом образе, Вам достаточно будет только перекомпилировать проект помощи.
Теперь, поговорим о добавлении картинок
в файл помощи. Самый простой способ – это
добавить картинку через пункт меню Вставка/Рисунок/Из
файла. Там выбрать файл, который должен быть
в директории, которую Вы указали в проекте.
Файл будет вставлен в RTF
текст и, после компиляции, в помощь.
Сразу скажу, что вставка картинки через
буфер обмена не приведет к вставки картинки
в помощь. Следующий способ – это вставить в
файл текст {bml 1.bmp}, где 1.bmp
– это имя файла картинки. Сразу замечу, что
имя может быть только по английски. После
компиляции на месте, где вы вставили эту
директиву, появится картинка. Так можно
вставить и картинку SHG,
которая будет за одно и ссылкой на тему.
Для создания картинок SHG
используйте
программу Shed.exe, поставляемую Microsoft (HotSpot Editor).
Давайте вставим такую картинку в помощь.
Создадим картинку с окном редактирования
платежного поручения. Для этого запустим
программу и отредактируем какое-нибудь
платежное поручение. Когда покажется
редактор, нажмем Print Screen.
Далее, вставим из буфера обмена картинку в MS Paint. Там выделим часть картинки с
редактором, скопируем изображение в буфер
обмена и создав новую картинку вставим
выделенный фрагмент. Запишем картинку в
директорию с проектом по именем Editor.bmp.
Запустим HotSpot
Editor, и
загрузим картинку редактора. Выделим часть
картинки с кнопкой Готово, и кликнем по
выделению. В появившемся окне редактора
ссылки зададим Context
String как ID_OK,
Type
– PopUp, Attribute – invisible.
Далее, сохраним картинку под именем Editor.shg.
А в текст помощи в тему Создание платежного
поручения вставим текст {bml Editor.SHG}.
После перекомпиляции откройте файл помощи,
тему с картинкой и щелкните по кнопке
Готово. Появится подсказка к этой кнопке во
всплывающем окне. Вы можете создать
несколько областей – ссылок в одной
картинке. Для создания ссылки – перехода на
другую тему, задайте Type
– Jump.
Теперь, нам
нужно подключить файл помощи к программе.
Скопируйте файл помощи в директорию
программы. Определим обработчик события aCont.OnExecute:
Application.HelpJump('ID_CONT');
Так будет вызываться файл подсказки на страничке с оглавлением. Всем интерфейсным элементам в диалоговых окнах нужно указать соответствующий идентификатор в свойстве HelpContext как мы определили в Map файла проекта помощи. При задании этих идентификаторов, лучше двигаться от предков к потомкам, тогда элементы, получившие идентификатор в предках уже будут иметь его и в потомках, так Вы сократите трудоемкость. Окнам справочников тоже нужно дать идентификаторы, чтобы по нажатию F1 в этом окне вызывалась нужная страничка. Вы можете ознакомится с заготовкой файла помощи в примере программы, которую я выложил на свой буфер обмена.
Банников Н.А. www.stikriz.narod.ru почта 2000 г.