На лекции осваиваются приемы разработки справочной системы и подключения этой системы к проекту Lazarus.
Любой серьезный проект должен быть снабжен подробной справочной системой, позволяющей пользователю разобраться с тем, как работает ваша программа. Ведь если бы не "хэлпы", мы с вами вряд ли смогли самостоятельно освоить какую-нибудь сложную программу. И в этой лекции мы научимся создавать справочные системы и подключать их к проекту. Напомню, что хоть Lazarus и является кросс-платформенной средой разработки программ, мы осваиваем работу с ним под управлением ОС Windows. Если вы пользуетесь Lazarus в среде Linux, Unix или другой не Windows ОС, то рекомендации из этой лекции вам вряд ли подойдут. В этом случае, вам придется поискать данный материал самостоятельно.
Итак, справка может быть двух форматов: *.hlp и *.chm. Оба формата разработаны корпорацией Microsoft. Формат HLP является устаревшим, хотя и встречается до сих пор, но в настоящий момент наиболее распространенным форматом справки в среде Windows является CHM, его и рассмотрим.
CHM (Microsoft Compressed HTML Help, Microsoft Compiled HTML Help, CHM) - формат файлов контекстной справки, разработанной Microsoft в 1997 году в качестве замены формата WinHelp - HLP. Файл CHM является сжатым набором HTML-страниц, своего рода, электронной книгой, и может содержать весь набор Web-страниц: текст, таблицы, рисунки, ссылки, медиа-файлы, и прочее, что делает такую справочную систему мощным инструментом. Все входящие в CHM-справку файлы сжаты алгоритмом LZX, что делает справку более компактной.
В Интернете я нашел упоминание, что в состав Lazarus входит инструмент для создания CHM-файлов. И в самом деле, я нашел этот инструмент по адресу (папки установки Lazarus у меня создавались по умолчанию):
C:\lazarus\tools\chmmaker
По этому адресу я нашел проект, который по идее, нужно скомпилировать, и получить готовый инструмент. Впрочем, достаточно взглянуть на окно проекта, чтобы понять, насколько данный инструмент примитивен. Говорить серьезно о создании с его помощью справочной системы не приходится. А значит, нам нужно найти другой инструмент.
Этот инструмент должен быть:
И тут на ум сразу приходят две программы: HTM2CHM и Microsoft HTML Help Workshop. Первая написана русским программистом Ярославом Кирилловым, обладает русским и достаточно дружелюбным интерфейсом. Функционально она проигрывает Microsoft HTML Help Workshop. Кроме того, компилируемые программой CHM-файлы получаются несколько большего размера. Однако если требуется простая небольшая справка, то лучшего инструмента вам не найти. Мы не будем рассматривать программу HTM2CHM, поскольку она достаточно проста, вам нетрудно будет освоить её самостоятельно. Рассмотрим более сложный инструмент - Microsoft HTML Help Workshop. Как видно из названия, программа разработана корпорацией Microsoft, является бесплатным, свободно распространяемым продуктом. Скачать её можно с сайта производителя, я нашел её по адресу: http://www.microsoft.com/en-us/download/details.aspx?id=21138
Или же вы можете скачать этот инструмент с моего сайта, который задумывался для поддержки этого курса: htmlhelp.rar
Это HTML Help Workshop версии 4.74.8702 - программа для создания справочной системы.
HTML Help Workshop (hhw.exe) - программа, обладающая достаточно большими возможностями, хотя и непростая в эксплуатации, и не имеет русского интерфейса. Программа позволяет создавать все необходимые файлы справки, из которых затем компилируется единый проект.
Давайте вообще, разберемся, что представляет собой CHM-справка. По сути, это электронная интерактивная книга, позволяющая использовать содержание, индексы (тэги), полнотекстовый контекстный поиск, избранные статьи справки. И всё это создается на основе отдельных HTML-файлов. И вот теперь мы подходим к другому вопросу: что такое HTML? HTML - Hyper Text Markup Language - Язык разметки гипертекста, основа, на которой строятся все Web-сайты, те самые веб-странички, которые мы загружаем в свои браузеры. Получается, чтобы создавать справочную систему, требуется изучить ещё какой то HTML? В общем, да, если вы будете использовать только встроенные средства HTML Help Workshop. Веб-страничку можно написать в любом текстовом редакторе, хоть в Блокноте, если вы знаете разметку HTML. Однако конечно, есть и более простые пути.
Существует множество визуальных редакторов, которые позволяют сохранять содержимое в виде HTML-файлов. В первую очередь приходит на ум офисная программа MS Word. Да, она также позволяет создавать HTML-файлы, однако не советую её использовать: внутри таких файлов очень много лишних тегов - мусора. Кроме того, ссылки на изображения в HTML-файлах должны быть представлены тегом img, например:
<img src="logo.png">
а MS Word вставляет изображения в коллекцию Shapes.
Другим вариантом в Интернете нередко советуют программу из того же офиса MS FrontPage. Что ж, в первых версиях эта программа действительно, была хороша: достаточно простая, позволяла создавать веб-странички визуально, не требовала от пользователя знаний HTML. Однако со временем, FrontPage (как и другая продукция Microsoft) всё более усложнялась, в неё добавлялись всё новые, неизвестно кому нужные функции, и теперь MS FrontPage - неповоротливый монстр, для изучения которого потребуется достаточно увесистый учебник.
Есть и третий, более удачный вариант. На просторах Интернета существует много визуальных HTML-редакторов, не требующих знаний HTML. Есть и платные программы, и бесплатные. Есть довольно сложные системы, вроде Macromedia Dreamweaver, позволяющие строить целые сайты, есть программы попроще.
Для создания HTML-файлов я весьма рекомендую простой и бесплатный визуальный HTML-редактор с русским интерфейсом NVU. Этот редактор вы можете скачать с сайта разработчика: http://nvu.mozilla-russia.org/
или с моего сайта: http://lazarusprog.tk/files/nvu.rar
Это NVU 1.0 - Визуальный HTML редактор (WYSIWYG-редактор, от англ. What You See Is What You Get, "что видишь, то и получишь"). Этот редактор не требует знаний HTML, достаточно прост в освоении и имеет подробную справку на русском языке:
(рис 28.1) HTML-редактор Nvu
Рассматривать создание веб-страниц в этом редакторе мы не будем, там всё достаточно просто и прозрачно, а лекция и без того получится большой. Замечу только, что имена HTML-файлам лучше давать латинскими символами и не использовать пробелы, то есть, вместо "Команды меню.html" файл будет лучше назвать "CommandsMenu.html". Дело в том, что если вы будете размещать в каких то страницах руководства ссылки на другие страницы справочника, то HTML Help Workshop может дать неверные результаты с именами файлов на русском языке. Пробелы в имени файла тоже могут сослужить плохую службу.
Теперь вернемся к нашей справке. Надеюсь, вы сохранили проект Блокнота-шифровальщика из 18-й лекции? Для этого проекта мы и будем создавать справочную систему. Прежде всего, нам нужно разработать структуру будущей справки. Содержимое справки представляет собой древовидную структуру, в которой могут быть книги и страницы. Книга в HTML Help Workshop - это раздел, который имеет подразделы, такие книги могут быть вложенными. Страница - это конечный раздел, который не имеет подразделов. Наша программа не настолько сложная, поэтому и структура будет достаточно простой:
Назначение программы
Команды меню
Файл
Правка
Формат
Кодирование
Справка
Обратная связь
Здесь мы имеем две страницы: "Назначение программы" и "Обратная связь", а также книгу "Команды меню", которая в свою очередь, содержит ещё 5 страниц: "Файл", "Правка", "Формат", "Кодирование" и "Справка".
Таким образом, нам придется сделать 8 HTML-файлов, отдельно на книгу и на каждую из страниц. Я не буду приводить полные листинги этих файлов - содержимое справки будет зависеть от вашей фантазии, но некоторые показательные теги я приведу. Вот, например, как я указывал ссылки на существующие страницы руководства:
(рис 28.2) Демонстрация ссылок на другие страницы руководства
Код я привёл в виде изображения, чтобы теги примера не конфликтовали с тегами самой лекции. Причем текст HTML-файла открыт в простом Блокноте, чтобы увидеть теги в NVU, нужно открыть вкладку "Код" в нижней части рабочего окна.
А так у меня вставляется изображение:
(рис 28.3) Демонстрация ссылок на изображение
В результате должна получиться примерно такая страничка со вставленным изображением:
(рис 28.4) Внешний вид странички с изображением
Надеюсь, смысл вы уловили, и правильно сделали все 8 html-файлов (у меня есть ещё 9-й файл - изображение MyText.jpg).
Наш Блокнот-шифровальщик находится в папке 18-01, если вы следовали моим рекомендациям. Создадим в этой папке еще одну папку Help, где будем собирать нашу справочную систему. У меня получился такой адрес:
C:\Education\18-01\Help
Я поместил туда 8 html-файлов:
и картинку MyText.JPG, которую я вставлял в страничке Coder.html (см. рис 28.4).
Теперь все приготовления сделаны, можно загружать программу HTML Help Workshop и заняться, наконец, созданием CHM-файла. Загрузив программу, выберите команду меню "File -> New", или щелкните кнопку "New" на Панели управления. Перед вами появится следующее окошко:
(рис 28.5) Окно выбора объекта в HTML Help Workshop
Итак, здесь вы можете выбрать для создания следующие объекты:
Как говорилось выше, вначале нужно будет сделать Таблицу содержания, поэтому выбирайте объект Table of Contents.
В окне HTML Help Workshop будет открыт объект TOC (Table Of Contents):
(рис 28.6) Таблица содержания в HTML Help Workshop
Значимыми для нас являются некоторые кнопки на левой боковой панели инструментов. Самая верхняя кнопка - Свойства таблицы содержания. Две следующих кнопки позволяют добавить в таблицу книгу или страницу, это то, что нам сейчас понадобится.
Нажмите кнопку "Insert a page" (названия кнопок появляются, если некоторое время подержать над ними указатель мыши) для добавления страницы. В поле "Entry title" требуется указать то название раздела, которое будет отображаться в таблице. У нас это будет "Назначение программы" (без кавычек, конечно). Затем нужно нажать кнопку "Add/Edit", чтобы указать соответствующий разделу HTML-файл. Откроется еще одно окно "Path or URL", в котором требуется ввести имя HTML-файла или его Интернет-адрес. Можно воспользоваться кнопкой "Browse" для выбора файла, но тогда файл будет указан вместе с его относительным адресом, например, так:
..\..\Education\18-01\Help\Naznachenie.html
У нас с вами все файлы проекта справочника будут находиться в одной папке, поэтому относительный адрес тут не нужен. Удалите его, оставив в строке "File or URL" только имя соответствующего разделу HTML-файла, у меня это:
Naznachenie.html
Нажмите кнопку "ОК", и тогда окно добавления раздела Таблицы содержания будет выглядеть так:
(рис 28.7) Добавление раздела в Таблицу содержания
Нажмите "ОК", и раздел будет добавлен в Таблицу содержания.
Теперь нажмите кнопку "Insert a heading", потому что в этот раз нам нужно добавить не страницу, а книгу "Команды меню". На запрос уверены ли вы, что желаете добавить книгу в таблицу содержания, ответьте утвердительно. Процесс добавления книги абсолютно такой же, как и страницы. Укажите название раздела "Команды меню" и укажите HTML-файл, соответствующий этому разделу. Не забудьте удалить относительный адрес, если вы воспользовались кнопкой "Browse" для выбора файла.
Когда вы укажите всё, что нужно, и подтвердите все запросы, книга будет добавлена в Таблицу содержания, но окажется ВЫШЕ предыдущей страницы! А в нашей древовидной структуре она должна быть во второй строчке. Тут на помощь приходят четыре кнопки со стрелками. Первые две позволяют перемещать объект выше и ниже, а вторые - влево и вправо. Таким образом, мы можем не только установить раздел на нужную строчку Таблицы, но и передвинуть его на нужную позицию древовидной структуры. Ведь в третьей строчке у нас должна быть страница "Файл", которая будет вложенной в книгу "Команды меню", а стало быть, должна быть сдвинута вправо.
Проделав эту операцию нужное количество раз, добавьте все остальные страницы в Таблицу содержания:
(рис 28.8) Разделы Таблицы содержания
Не забывайте убирать относительный адрес HTML-страниц.
Когда закончите работу, нажмите нижнюю кнопку "Save file" на левой панели инструментов для сохранения Таблицы содержания. Имя таблицы можете оставить без изменения, "Table of Contents.hhc", но убедитесь, что сохраняете его в ту же папку, где уже находятся HTML-файлы справки. Впрочем, эта самая папка уже должна быть указана в окне сохранения Таблицы, если вы добавляли HTML-страницы кнопкой "Browse".
Командой главного меню "File -> Close all" закройте созданную ранее Таблицу разделов. Затем выберите команду "File -> New" или нажмите кнопку "New" на Панели инструментов, чтобы начать создание нового объекта. В этот раз мы создаем Проект, поэтому в окне выбора объекта укажите Project.
Появится окно мастера создания проекта, и вначале вам будет предложено конвертировать существующий проект устаревшего формата WinHelp. Мы с вами создаём проект "с нуля", поэтому флажок "Convert WinHelp project" не устанавливаем, а сразу нажимаем "Далее".
На следующем шаге вам будет предложено ввести имя файла проекта или выбрать существующий файл. Тут проще всего нажать кнопку "Browse", убедиться, что открыта папка "Help", в которой у нас хранятся все файлы проекта справки, в поле "Имя файла" указать имя файла проекта. Тут есть одно замечание: результирующая справка будет иметь такое же имя, как и файл проекта, а имена справочных файлов обычно совпадают с именами программы. Файл программы у нас называется CodeBook.exe, значит, вписываем имя CodeBook и нажимаем "Открыть". Вы вернетесь в окно с именем файла, это имя будет указано вместе с адресом, а имя файла проекта автоматически получит расширение HHP (Hyper Help Project). У меня получилось так:
C:\Education\18-01\Help\CodeBook.hhp
Нажимаем "Далее", и откроется следующее окно мастера. Тут нам будет предложено указать, какими файлами проекта мы уже располагаем. У нас с вами есть HTML-файлы с разделами и файл Таблицы содержания, устанавливаем соответствующие флажки:
(рис 28.9) Окно мастера создания проекта - указание существующих объектов
Нажимаем "Далее". На следующем шаге будет предложено указать файл Таблицы содержания. Нажмите "Browse" и выберите файл таблицы (Table of Contents.hhc). Нажимаем "Открыть", адрес и имя файла Таблицы попадет в поле мастера. Нажимаем "Далее".
На следующем шаге нам предлагается ввести все HTML-файлы проекта. Можно добавлять их по очереди, а лучше все файлы разом. Нажмите кнопку "Add", откроется окно открытия файлов. По умолчанию, должна быть открыта папка "Help". В окне вы увидите 8 HTML-файлов. Выделите первый из них, затем, удерживая кнопку <Shift>, щелкните по последнему. Все 8 файлов окажутся выделенными. Нажмите "Открыть", и все эти файлы попадут в окно мастера:
(рис 28.10) Окно мастера создания проекта - указание существующих HTML-файлов
Нажимаем кнопку "Далее", затем "Готово". Всё, проект создан.
Наша справка почти готова, мы уже можем скомпилировать результирующий файл справки, однако не мешает добавить в неё некоторые дополнительные функции. Индекса то у нас еще нет!
Сейчас в Интернете много сайтов - библиотек, блогов, новостных сайтов и т.п. - где вы можете найти информацию по так называемым тегам. Вы же видели поле, куда вводят искомые слова и фразы, и кнопку "Найти" рядом? Те ключевые слова, которые вы туда вводите, в сфере Интернета называются тегами, а в проекте справки - индексами.
Одна страничка справки может иметь множество ключевых слов. С другой стороны, одно ключевое слово может ссылаться на множество страничек справки. Грамотная организация индексов сильно облегчит конечному пользователю работу со справкой, тут всё зависит от вашей фантазии и знаний психологии пользователя.
В окне HTML Help Workshop открыт файл проекта, в левой части окна вы видите три вкладки: "Project", "Contents" и "Index". Чтобы начать создание индексов, нужно перейти на вкладку "Index". Поскольку индексный файл в проекте еще не указан, то будет выведен запрос - создаем ли мы новый индексный файл, или подключаем существующий? Мы создаем новый файл, поэтому оставьте выделенной радиокнопку "Create a new index file" и нажмите "ОК". Вам будет предложено ввести имя индексного файла, причем по умолчанию будет предложено имя Index.hhk. Не вижу особого смысла менять это имя. Убедитесь только, что в поле "Папка" по-прежнему открыта наша папка "Help", индексный файл нам нужно сохранять тоже в неё. Нажмите "Сохранить", и индексный файл будет создан.
Пока еще он пустой - индексов нет. Займемся их созданием. Вообще, следует продумать заранее, какие ключевые слова к какому разделу справки привязать. У меня получилось так:
| Файл и название раздела | Ключевые слова |
|---|---|
| Coder.html
Команды меню "Кодирование" |
кодирование, декодирование, шифровать, дешифровать, расшифровать, текст |
| CommandsMenu.html
Команды меню |
пункты меню, файл, правка, формат, кодирование, справка |
| File.html
Команды меню "Файл" |
файл, работа с файлом, создать, открыть, сохранить, статистика, выход |
| Format.html
Команды меню "Формат" |
формат, шрифт, цвет, перенос по словам, автоматический перенос текста |
| Naznachenie.html
Назначение программы |
CodeBook, блокнот-шифровальщик, блокнот, пароль, ключевое слово, версия |
| ObratSvyaz.html
Обратная связь |
обратная связь, сайт, e-mail, электронный ящик, автор |
| Pravka.html
Команды меню "Правка" |
правка, отменить, вырезать, копировать, вставить, удалить, выделить всё, буфер обмена |
У вас имена файлов и названия разделов могут отличаться. Кроме того, возможно, ваша фантазия подскажет, как расширить список ключевых слов.
Со списком разобрались, приступаем к созданию индексов. В окне HTML Help Workshop должна быть открыта вкладка "Index". Обратите внимание на кнопки левой боковой панели инструментов, они почти такие же, как у Таблицы содержания. Нас интересует вторая кнопка "Insert a keyword", на ней изображен ключ.
Нажмите на неё. Откроется окно добавления индекса. Ключевое слово или фразу нужно вписать в поле "Keyword", затем нажать кнопку "Add". Будет открыто окно, в котором нужно выбрать раздел, на который будет ссылаться данное ключевое слово. Если это слово встречается в разных разделах, то придется создавать несколько индексов: с одним ключевым словом, но разными ссылками на разделы. Для больших справочных систем та ещё работа!
Итак, ключевое слово указали, раздел справки в поле "HTML titles" выбрали - поля "File or URL" и "Title" должны заполниться автоматически. Нажмите "ОК", и новый индекс появится в окне добавления индекса:
(рис 28.11) Окно добавления ключевого слова
Ещё раз нажмите "ОК", и на вкладке "Index" появится ключевое слово "кодирование". Ничего сложного, кроме того, что подобную операцию придется повторять многократно, для каждой пары "Ключевое слово - Ссылка на раздел". Так что запаситесь терпением, и введите все ваши ключевые слова и фразы.
Каждый раз вам будет выводиться запрос - следует ли создавать новый индекс на верху списка - отвечайте утвердительно, мы этот список отсортируем потом. Если вы случайно ошиблись, можете нажать третью сверху кнопку с изображением карандаша для редактирования индекса, или четвертую - для удаления, только этот ошибочный индекс должен быть выделен.
Не знаю, как у вас, а у меня получилось 46 ключевых слов и фраз! Не мешало бы рассортировать их в алфавитном порядке. Для этого служит третья снизу кнопка "Sort keywords alphabetically" с буквами A и Z и стрелкой вниз - нажмите её, и список будет отсортирован. Если вам доведется работать с большой справкой, индексы можно создавать не за один подход, а добавлять их время от времени. Но потом всё же не забывайте их снова сортировать, иначе индексы будут выглядеть неряшливо.
Всё, работу с индексами закончили, нажмите нижнюю кнопку "Save file" для сохранения индексного файла.
Индексы могут существенно облегчить пользователю поиск нужной справки, однако всё же полнотекстовый поиск для этого используют чаще. Полнотекстовый поиск - это когда пользователь вписывает искомое слово/фразу, а справочная система ищет это слово/фразу по всей справке. Индексы при этом не используются, то есть, найти можно любое слово, не только проиндексированное.
За удобство использования полнотекстового поиска приходится платить некоторым замедлением поиска, однако на современных ПК это замедление почти незаметно.
Включить полнотекстовый поиск очень просто. В окне HTML Help Workshop откройте вкладку "Project". Самая верхняя кнопка левой боковой панели инструментов - "Change project options" (Изменить параметры проекта). Нажмите её, перейдите на вкладу "Compiler" и включите флажок "Compile full-text search information":
(рис 28.12) Окно изменения параметров проекта
Кроме того, стоит прямо сейчас указать, какая страница справки будет открываться по умолчанию. Для этого перейдите на вкладку "General", и в поле "Default file" выберите нужный файл. Я, например, выбрал Naznachenie.html. Не забудьте нажать кнопку "ОК", чтобы подтвердить изменения.
Вкладка "Избранное" в справочной системе может послужить достойным завершающим штрихом. В эту вкладку пользователь будет иметь возможность добавлять те разделы справки, к которым чаще всего обращается. Создается эта вкладка тоже достаточно просто.
На вкладке "Project" HTML Help Workshop, на левой боковой панели инструментов, третья кнопка сверху - кнопка "Add/Modify window definitions" (Добавить/Изменить определение окна). Справка ведь выводится в окне, мы своё окно пока не создавали, пользовались тем, что создается по умолчанию, а потому к настройкам окна доступа не имеем. Вот нам и нужно создать своё окно справки. Нажмите на эту кнопку. Вам будет предложено ввести имя нового окна. Имя может быть любое, например, Favorites.
Как только вы введете имя и нажмете "ОК", откроется окно Window Types с настройками нашего нового окна. Для добавления вкладки "Избранное" нам нужно перейти на вкладку "Navigation Pane" и включить флажок "Favorites tab":
(рис 28.13) Включение вкладки Избранное
Кроме того, перейдите на вкладку "Files" и в поле "Default" также укажите файл справки, который будет открываться по умолчанию.
Нажмите "ОК", и на этом наша работа с проектом завершена. Не забудьте сохранить проект командой меню "File -> Save project" или кнопкой с изображением дискетки.
Наш проект закончен, осталось скомпилировать саму справку - файл CodeBook.chm. Делается это очень просто: выберите команду главного меню "File -> Compile…". Вам будет предложено выбрать файл проекта, для которого компилируется справка, по умолчанию будет открыт наш проект
C:\Education\18-01\Help\CodeBook.hhp
Это нам и нужно. Рекомендую включить флажок "Save all files before compiling" (Сохранить все файлы перед компиляцией). После чего можете нажать кнопку "Compile".
Если вы всё сделали правильно, в правой части окна выйдет отчет о проделанной компиляции:
(рис 28.14) Отчет о компиляции
Как видите, ошибок в отчете нет, указано количество тем, локальных и Интернет-ссылок, изображений. Правда, не всегда эти количества соответствуют действительности, но тут уж ничего не поделать.
Также указано, что был создан файл CodeBook.chm размером 99,386 байт. На этом работа с проектом завершена, можете закрыть HTML Help Workshop.
Затем можете в Проводником или файловым менеджером открыть папку Help с проектом справки, и запустить файл CodeBook.chm прямо оттуда:
(рис 28.15) Работающая справочная система
Как видите, справка открывается, на ней присутствуют все 4 вкладки: "Содержание", "Указатель", "Поиск" и "Избранное". Можете поэкспериментировать с этими вкладками.
Есть пару замечаний. Первое: для показа этой справки система задействует инструменты программы MS Internet Explorer, но на каждой Windows эта программа установлена, так что беспокоиться тут нечего. Второе: справка самостоятельно запоминает последнее положение и размеры, которые установил пользователь. При последующем запуске справки эти положение и размеры будут восстановлены, что сильно облегчает нам работу.
Надо сказать, механизм подключения справочной системы к проекту в Lazarus ещё сыроват, и информации по этому вопросу немного. Одни советуют использовать несколько десятков строк кода, другие говорят, что это не помогает… В официальной документации (на английском языке) Lazarus советуют использовать компоненты THTMLHelpDatabase и THTMLBrowserHelpViewer с вкладки System. В качестве примера предлагают проект
C:\lazarus\examples\helphtml
Этот пример, почему то, выводит справку в браузере, установленном в системе по умолчанию. Затем мне всё же удалось запустить справку, однако справка открылась в окне просмотра Lazarus, а не системы. Это окно, как оказалось, с кириллицей "не дружит" - вместо русских букв выходили прямоугольнички.
В конце концов, мне удалось найти достаточно простой способ подключить к проекту справочную систему, о нем я вам сейчас и расскажу.
Прежде всего, скопируйте файл справки CodeBook.chm в папку с проектом программы. Можно было бы оставить его и в папке Help, особой разницы, откуда запускать справочник нет. Однако когда все файлы программы находятся в одной папке, то эту программу проще подготовить к распространению.
Далее, откройте проект программы в Lazarus - запустите файл CodeBook.lpi из папки с проектом, у меня это C:\Education\18-01. Откроется Lazarus с проектом программы. В Редакторе кода убедитесь, что открыта вкладка "Main" - вкладка главного окна. Перейдите на редактор форм. Откройте редактор главного меню (дважды щелкните по компоненту MainMenu1).
Нам нужно добавить еще один элемент в раздел меню "Справка". Выделите этот раздел, выделите его элемент "О программе", щелкните правой кнопкой мыши и выберите команду "Вставить новый пункт (перед)". Появится новый пункт меню. Выделите его, свойство Name переименуйте в HelpHelp, в свойстве Caption напишите Справка, а в свойстве ShortCut выберите горячую клавишу <F1>.
Сгенерируйте для этого пункта меню событие OnClick, код которого будет довольно простой:
procedure TfMain.HelpHelpClick(Sender: TObject);
begin
//вызываем справку:
WinExec('hh.exe CodeBook.chm',SW_SHOW);
end;
Процедура WinExec вызывает внешнее системное приложение hh.exe (системный просмотрщик справок) с загруженным файлом справки CodeBook.chm. Однако WinExec сразу же работать не будет - эта процедура прописана в модуле Windows, который нужно добавить в раздел uses. Добавьте, сохраните проект, перекомпилируйте его и запустите. Нажмите <F1> или выберите команду меню "Справка -> Справка" - наша справка должна загрузиться.
Если вы захотите распространять эту программу, вам для этого будет достаточно двух файлов: CodeBook.exe (сама программа) и CodeBook.chm (справка).
На лекции осваиваются приемы разработки справочной системы и подключения этой системы к проекту Lazarus.
Любой серьезный проект должен быть снабжен подробной справочной системой, позволяющей пользователю разобраться с тем, как работает ваша программа. Ведь если бы не "хэлпы", мы с вами вряд ли смогли самостоятельно освоить какую-нибудь сложную программу. И в этой лекции мы научимся создавать справочные системы и подключать их к проекту. Напомню, что хоть Lazarus и является кросс-платформенной средой разработки программ, мы осваиваем работу с ним под управлением ОС Windows. Если вы пользуетесь Lazarus в среде Linux, Unix или другой не Windows ОС, то рекомендации из этой лекции вам вряд ли подойдут. В этом случае, вам придется поискать данный материал самостоятельно.
Итак, справка может быть двух форматов: *.hlp и *.chm. Оба формата разработаны корпорацией Microsoft. Формат HLP является устаревшим, хотя и встречается до сих пор, но в настоящий момент наиболее распространенным форматом справки в среде Windows является CHM, его и рассмотрим.
CHM (Microsoft Compressed HTML Help, Microsoft Compiled HTML Help, CHM) - формат файлов контекстной справки, разработанной Microsoft в 1997 году в качестве замены формата WinHelp - HLP. Файл CHM является сжатым набором HTML-страниц, своего рода, электронной книгой, и может содержать весь набор Web-страниц: текст, таблицы, рисунки, ссылки, медиа-файлы, и прочее, что делает такую справочную систему мощным инструментом. Все входящие в CHM-справку файлы сжаты алгоритмом LZX, что делает справку более компактной.
В Интернете я нашел упоминание, что в состав Lazarus входит инструмент для создания CHM-файлов. И в самом деле, я нашел этот инструмент по адресу (папки установки Lazarus у меня создавались по умолчанию):
C:\lazarus\tools\chmmaker
По этому адресу я нашел проект, который по идее, нужно скомпилировать, и получить готовый инструмент. Впрочем, достаточно взглянуть на окно проекта, чтобы понять, насколько данный инструмент примитивен. Говорить серьезно о создании с его помощью справочной системы не приходится. А значит, нам нужно найти другой инструмент.
Этот инструмент должен быть:
И тут на ум сразу приходят две программы: HTM2CHM и Microsoft HTML Help Workshop. Первая написана русским программистом Ярославом Кирилловым, обладает русским и достаточно дружелюбным интерфейсом. Функционально она проигрывает Microsoft HTML Help Workshop. Кроме того, компилируемые программой CHM-файлы получаются несколько большего размера. Однако если требуется простая небольшая справка, то лучшего инструмента вам не найти. Мы не будем рассматривать программу HTM2CHM, поскольку она достаточно проста, вам нетрудно будет освоить её самостоятельно. Рассмотрим более сложный инструмент - Microsoft HTML Help Workshop. Как видно из названия, программа разработана корпорацией Microsoft, является бесплатным, свободно распространяемым продуктом. Скачать её можно с сайта производителя, я нашел её по адресу: http://www.microsoft.com/en-us/download/details.aspx?id=21138
Или же вы можете скачать этот инструмент с моего сайта, который задумывался для поддержки этого курса: htmlhelp.rar
Это HTML Help Workshop версии 4.74.8702 - программа для создания справочной системы.
HTML Help Workshop (hhw.exe) - программа, обладающая достаточно большими возможностями, хотя и непростая в эксплуатации, и не имеет русского интерфейса. Программа позволяет создавать все необходимые файлы справки, из которых затем компилируется единый проект.
Давайте вообще, разберемся, что представляет собой CHM-справка. По сути, это электронная интерактивная книга, позволяющая использовать содержание, индексы (тэги), полнотекстовый контекстный поиск, избранные статьи справки. И всё это создается на основе отдельных HTML-файлов. И вот теперь мы подходим к другому вопросу: что такое HTML? HTML - Hyper Text Markup Language - Язык разметки гипертекста, основа, на которой строятся все Web-сайты, те самые веб-странички, которые мы загружаем в свои браузеры. Получается, чтобы создавать справочную систему, требуется изучить ещё какой то HTML? В общем, да, если вы будете использовать только встроенные средства HTML Help Workshop. Веб-страничку можно написать в любом текстовом редакторе, хоть в Блокноте, если вы знаете разметку HTML. Однако конечно, есть и более простые пути.
Существует множество визуальных редакторов, которые позволяют сохранять содержимое в виде HTML-файлов. В первую очередь приходит на ум офисная программа MS Word. Да, она также позволяет создавать HTML-файлы, однако не советую её использовать: внутри таких файлов очень много лишних тегов - мусора. Кроме того, ссылки на изображения в HTML-файлах должны быть представлены тегом img, например:
<img src="logo.png">
а MS Word вставляет изображения в коллекцию Shapes.
Другим вариантом в Интернете нередко советуют программу из того же офиса MS FrontPage. Что ж, в первых версиях эта программа действительно, была хороша: достаточно простая, позволяла создавать веб-странички визуально, не требовала от пользователя знаний HTML. Однако со временем, FrontPage (как и другая продукция Microsoft) всё более усложнялась, в неё добавлялись всё новые, неизвестно кому нужные функции, и теперь MS FrontPage - неповоротливый монстр, для изучения которого потребуется достаточно увесистый учебник.
Есть и третий, более удачный вариант. На просторах Интернета существует много визуальных HTML-редакторов, не требующих знаний HTML. Есть и платные программы, и бесплатные. Есть довольно сложные системы, вроде Macromedia Dreamweaver, позволяющие строить целые сайты, есть программы попроще.
Для создания HTML-файлов я весьма рекомендую простой и бесплатный визуальный HTML-редактор с русским интерфейсом NVU. Этот редактор вы можете скачать с сайта разработчика: http://nvu.mozilla-russia.org/
или с моего сайта: http://lazarusprog.tk/files/nvu.rar
Это NVU 1.0 - Визуальный HTML редактор (WYSIWYG-редактор, от англ. What You See Is What You Get, "что видишь, то и получишь"). Этот редактор не требует знаний HTML, достаточно прост в освоении и имеет подробную справку на русском языке:
(рис 28.1) HTML-редактор Nvu
Рассматривать создание веб-страниц в этом редакторе мы не будем, там всё достаточно просто и прозрачно, а лекция и без того получится большой. Замечу только, что имена HTML-файлам лучше давать латинскими символами и не использовать пробелы, то есть, вместо "Команды меню.html" файл будет лучше назвать "CommandsMenu.html". Дело в том, что если вы будете размещать в каких то страницах руководства ссылки на другие страницы справочника, то HTML Help Workshop может дать неверные результаты с именами файлов на русском языке. Пробелы в имени файла тоже могут сослужить плохую службу.
Теперь вернемся к нашей справке. Надеюсь, вы сохранили проект Блокнота-шифровальщика из 18-й лекции? Для этого проекта мы и будем создавать справочную систему. Прежде всего, нам нужно разработать структуру будущей справки. Содержимое справки представляет собой древовидную структуру, в которой могут быть книги и страницы. Книга в HTML Help Workshop - это раздел, который имеет подразделы, такие книги могут быть вложенными. Страница - это конечный раздел, который не имеет подразделов. Наша программа не настолько сложная, поэтому и структура будет достаточно простой:
Назначение программы
Команды меню
Файл
Правка
Формат
Кодирование
Справка
Обратная связь
Здесь мы имеем две страницы: "Назначение программы" и "Обратная связь", а также книгу "Команды меню", которая в свою очередь, содержит ещё 5 страниц: "Файл", "Правка", "Формат", "Кодирование" и "Справка".
Таким образом, нам придется сделать 8 HTML-файлов, отдельно на книгу и на каждую из страниц. Я не буду приводить полные листинги этих файлов - содержимое справки будет зависеть от вашей фантазии, но некоторые показательные теги я приведу. Вот, например, как я указывал ссылки на существующие страницы руководства:
(рис 28.2) Демонстрация ссылок на другие страницы руководства
Код я привёл в виде изображения, чтобы теги примера не конфликтовали с тегами самой лекции. Причем текст HTML-файла открыт в простом Блокноте, чтобы увидеть теги в NVU, нужно открыть вкладку "Код" в нижней части рабочего окна.
А так у меня вставляется изображение:
(рис 28.3) Демонстрация ссылок на изображение
В результате должна получиться примерно такая страничка со вставленным изображением:
(рис 28.4) Внешний вид странички с изображением
Надеюсь, смысл вы уловили, и правильно сделали все 8 html-файлов (у меня есть ещё 9-й файл - изображение MyText.jpg).
Наш Блокнот-шифровальщик находится в папке 18-01, если вы следовали моим рекомендациям. Создадим в этой папке еще одну папку Help, где будем собирать нашу справочную систему. У меня получился такой адрес:
C:\Education\18-01\Help
Я поместил туда 8 html-файлов:
и картинку MyText.JPG, которую я вставлял в страничке Coder.html (см. рис 28.4).
Теперь все приготовления сделаны, можно загружать программу HTML Help Workshop и заняться, наконец, созданием CHM-файла. Загрузив программу, выберите команду меню "File -> New", или щелкните кнопку "New" на Панели управления. Перед вами появится следующее окошко:
(рис 28.5) Окно выбора объекта в HTML Help Workshop
Итак, здесь вы можете выбрать для создания следующие объекты:
Как говорилось выше, вначале нужно будет сделать Таблицу содержания, поэтому выбирайте объект Table of Contents.
В окне HTML Help Workshop будет открыт объект TOC (Table Of Contents):
(рис 28.6) Таблица содержания в HTML Help Workshop
Значимыми для нас являются некоторые кнопки на левой боковой панели инструментов. Самая верхняя кнопка - Свойства таблицы содержания. Две следующих кнопки позволяют добавить в таблицу книгу или страницу, это то, что нам сейчас понадобится.
Нажмите кнопку "Insert a page" (названия кнопок появляются, если некоторое время подержать над ними указатель мыши) для добавления страницы. В поле "Entry title" требуется указать то название раздела, которое будет отображаться в таблице. У нас это будет "Назначение программы" (без кавычек, конечно). Затем нужно нажать кнопку "Add/Edit", чтобы указать соответствующий разделу HTML-файл. Откроется еще одно окно "Path or URL", в котором требуется ввести имя HTML-файла или его Интернет-адрес. Можно воспользоваться кнопкой "Browse" для выбора файла, но тогда файл будет указан вместе с его относительным адресом, например, так:
..\..\Education\18-01\Help\Naznachenie.html
У нас с вами все файлы проекта справочника будут находиться в одной папке, поэтому относительный адрес тут не нужен. Удалите его, оставив в строке "File or URL" только имя соответствующего разделу HTML-файла, у меня это:
Naznachenie.html
Нажмите кнопку "ОК", и тогда окно добавления раздела Таблицы содержания будет выглядеть так:
(рис 28.7) Добавление раздела в Таблицу содержания
Нажмите "ОК", и раздел будет добавлен в Таблицу содержания.
Теперь нажмите кнопку "Insert a heading", потому что в этот раз нам нужно добавить не страницу, а книгу "Команды меню". На запрос уверены ли вы, что желаете добавить книгу в таблицу содержания, ответьте утвердительно. Процесс добавления книги абсолютно такой же, как и страницы. Укажите название раздела "Команды меню" и укажите HTML-файл, соответствующий этому разделу. Не забудьте удалить относительный адрес, если вы воспользовались кнопкой "Browse" для выбора файла.
Когда вы укажите всё, что нужно, и подтвердите все запросы, книга будет добавлена в Таблицу содержания, но окажется ВЫШЕ предыдущей страницы! А в нашей древовидной структуре она должна быть во второй строчке. Тут на помощь приходят четыре кнопки со стрелками. Первые две позволяют перемещать объект выше и ниже, а вторые - влево и вправо. Таким образом, мы можем не только установить раздел на нужную строчку Таблицы, но и передвинуть его на нужную позицию древовидной структуры. Ведь в третьей строчке у нас должна быть страница "Файл", которая будет вложенной в книгу "Команды меню", а стало быть, должна быть сдвинута вправо.
Проделав эту операцию нужное количество раз, добавьте все остальные страницы в Таблицу содержания:
(рис 28.8) Разделы Таблицы содержания
Не забывайте убирать относительный адрес HTML-страниц.
Когда закончите работу, нажмите нижнюю кнопку "Save file" на левой панели инструментов для сохранения Таблицы содержания. Имя таблицы можете оставить без изменения, "Table of Contents.hhc", но убедитесь, что сохраняете его в ту же папку, где уже находятся HTML-файлы справки. Впрочем, эта самая папка уже должна быть указана в окне сохранения Таблицы, если вы добавляли HTML-страницы кнопкой "Browse".
Командой главного меню "File -> Close all" закройте созданную ранее Таблицу разделов. Затем выберите команду "File -> New" или нажмите кнопку "New" на Панели инструментов, чтобы начать создание нового объекта. В этот раз мы создаем Проект, поэтому в окне выбора объекта укажите Project.
Появится окно мастера создания проекта, и вначале вам будет предложено конвертировать существующий проект устаревшего формата WinHelp. Мы с вами создаём проект "с нуля", поэтому флажок "Convert WinHelp project" не устанавливаем, а сразу нажимаем "Далее".
На следующем шаге вам будет предложено ввести имя файла проекта или выбрать существующий файл. Тут проще всего нажать кнопку "Browse", убедиться, что открыта папка "Help", в которой у нас хранятся все файлы проекта справки, в поле "Имя файла" указать имя файла проекта. Тут есть одно замечание: результирующая справка будет иметь такое же имя, как и файл проекта, а имена справочных файлов обычно совпадают с именами программы. Файл программы у нас называется CodeBook.exe, значит, вписываем имя CodeBook и нажимаем "Открыть". Вы вернетесь в окно с именем файла, это имя будет указано вместе с адресом, а имя файла проекта автоматически получит расширение HHP (Hyper Help Project). У меня получилось так:
C:\Education\18-01\Help\CodeBook.hhp
Нажимаем "Далее", и откроется следующее окно мастера. Тут нам будет предложено указать, какими файлами проекта мы уже располагаем. У нас с вами есть HTML-файлы с разделами и файл Таблицы содержания, устанавливаем соответствующие флажки:
(рис 28.9) Окно мастера создания проекта - указание существующих объектов
Нажимаем "Далее". На следующем шаге будет предложено указать файл Таблицы содержания. Нажмите "Browse" и выберите файл таблицы (Table of Contents.hhc). Нажимаем "Открыть", адрес и имя файла Таблицы попадет в поле мастера. Нажимаем "Далее".
На следующем шаге нам предлагается ввести все HTML-файлы проекта. Можно добавлять их по очереди, а лучше все файлы разом. Нажмите кнопку "Add", откроется окно открытия файлов. По умолчанию, должна быть открыта папка "Help". В окне вы увидите 8 HTML-файлов. Выделите первый из них, затем, удерживая кнопку <Shift>, щелкните по последнему. Все 8 файлов окажутся выделенными. Нажмите "Открыть", и все эти файлы попадут в окно мастера:
(рис 28.10) Окно мастера создания проекта - указание существующих HTML-файлов
Нажимаем кнопку "Далее", затем "Готово". Всё, проект создан.
Наша справка почти готова, мы уже можем скомпилировать результирующий файл справки, однако не мешает добавить в неё некоторые дополнительные функции. Индекса то у нас еще нет!
Сейчас в Интернете много сайтов - библиотек, блогов, новостных сайтов и т.п. - где вы можете найти информацию по так называемым тегам. Вы же видели поле, куда вводят искомые слова и фразы, и кнопку "Найти" рядом? Те ключевые слова, которые вы туда вводите, в сфере Интернета называются тегами, а в проекте справки - индексами.
Одна страничка справки может иметь множество ключевых слов. С другой стороны, одно ключевое слово может ссылаться на множество страничек справки. Грамотная организация индексов сильно облегчит конечному пользователю работу со справкой, тут всё зависит от вашей фантазии и знаний психологии пользователя.
В окне HTML Help Workshop открыт файл проекта, в левой части окна вы видите три вкладки: "Project", "Contents" и "Index". Чтобы начать создание индексов, нужно перейти на вкладку "Index". Поскольку индексный файл в проекте еще не указан, то будет выведен запрос - создаем ли мы новый индексный файл, или подключаем существующий? Мы создаем новый файл, поэтому оставьте выделенной радиокнопку "Create a new index file" и нажмите "ОК". Вам будет предложено ввести имя индексного файла, причем по умолчанию будет предложено имя Index.hhk. Не вижу особого смысла менять это имя. Убедитесь только, что в поле "Папка" по-прежнему открыта наша папка "Help", индексный файл нам нужно сохранять тоже в неё. Нажмите "Сохранить", и индексный файл будет создан.
Пока еще он пустой - индексов нет. Займемся их созданием. Вообще, следует продумать заранее, какие ключевые слова к какому разделу справки привязать. У меня получилось так:
| Файл и название раздела | Ключевые слова |
|---|---|
| Coder.html
Команды меню "Кодирование" |
кодирование, декодирование, шифровать, дешифровать, расшифровать, текст |
| CommandsMenu.html
Команды меню |
пункты меню, файл, правка, формат, кодирование, справка |
| File.html
Команды меню "Файл" |
файл, работа с файлом, создать, открыть, сохранить, статистика, выход |
| Format.html
Команды меню "Формат" |
формат, шрифт, цвет, перенос по словам, автоматический перенос текста |
| Naznachenie.html
Назначение программы |
CodeBook, блокнот-шифровальщик, блокнот, пароль, ключевое слово, версия |
| ObratSvyaz.html
Обратная связь |
обратная связь, сайт, e-mail, электронный ящик, автор |
| Pravka.html
Команды меню "Правка" |
правка, отменить, вырезать, копировать, вставить, удалить, выделить всё, буфер обмена |
У вас имена файлов и названия разделов могут отличаться. Кроме того, возможно, ваша фантазия подскажет, как расширить список ключевых слов.
Со списком разобрались, приступаем к созданию индексов. В окне HTML Help Workshop должна быть открыта вкладка "Index". Обратите внимание на кнопки левой боковой панели инструментов, они почти такие же, как у Таблицы содержания. Нас интересует вторая кнопка "Insert a keyword", на ней изображен ключ.
Нажмите на неё. Откроется окно добавления индекса. Ключевое слово или фразу нужно вписать в поле "Keyword", затем нажать кнопку "Add". Будет открыто окно, в котором нужно выбрать раздел, на который будет ссылаться данное ключевое слово. Если это слово встречается в разных разделах, то придется создавать несколько индексов: с одним ключевым словом, но разными ссылками на разделы. Для больших справочных систем та ещё работа!
Итак, ключевое слово указали, раздел справки в поле "HTML titles" выбрали - поля "File or URL" и "Title" должны заполниться автоматически. Нажмите "ОК", и новый индекс появится в окне добавления индекса:
(рис 28.11) Окно добавления ключевого слова
Ещё раз нажмите "ОК", и на вкладке "Index" появится ключевое слово "кодирование". Ничего сложного, кроме того, что подобную операцию придется повторять многократно, для каждой пары "Ключевое слово - Ссылка на раздел". Так что запаситесь терпением, и введите все ваши ключевые слова и фразы.
Каждый раз вам будет выводиться запрос - следует ли создавать новый индекс на верху списка - отвечайте утвердительно, мы этот список отсортируем потом. Если вы случайно ошиблись, можете нажать третью сверху кнопку с изображением карандаша для редактирования индекса, или четвертую - для удаления, только этот ошибочный индекс должен быть выделен.
Не знаю, как у вас, а у меня получилось 46 ключевых слов и фраз! Не мешало бы рассортировать их в алфавитном порядке. Для этого служит третья снизу кнопка "Sort keywords alphabetically" с буквами A и Z и стрелкой вниз - нажмите её, и список будет отсортирован. Если вам доведется работать с большой справкой, индексы можно создавать не за один подход, а добавлять их время от времени. Но потом всё же не забывайте их снова сортировать, иначе индексы будут выглядеть неряшливо.
Всё, работу с индексами закончили, нажмите нижнюю кнопку "Save file" для сохранения индексного файла.
Индексы могут существенно облегчить пользователю поиск нужной справки, однако всё же полнотекстовый поиск для этого используют чаще. Полнотекстовый поиск - это когда пользователь вписывает искомое слово/фразу, а справочная система ищет это слово/фразу по всей справке. Индексы при этом не используются, то есть, найти можно любое слово, не только проиндексированное.
За удобство использования полнотекстового поиска приходится платить некоторым замедлением поиска, однако на современных ПК это замедление почти незаметно.
Включить полнотекстовый поиск очень просто. В окне HTML Help Workshop откройте вкладку "Project". Самая верхняя кнопка левой боковой панели инструментов - "Change project options" (Изменить параметры проекта). Нажмите её, перейдите на вкладу "Compiler" и включите флажок "Compile full-text search information":
(рис 28.12) Окно изменения параметров проекта
Кроме того, стоит прямо сейчас указать, какая страница справки будет открываться по умолчанию. Для этого перейдите на вкладку "General", и в поле "Default file" выберите нужный файл. Я, например, выбрал Naznachenie.html. Не забудьте нажать кнопку "ОК", чтобы подтвердить изменения.
Вкладка "Избранное" в справочной системе может послужить достойным завершающим штрихом. В эту вкладку пользователь будет иметь возможность добавлять те разделы справки, к которым чаще всего обращается. Создается эта вкладка тоже достаточно просто.
На вкладке "Project" HTML Help Workshop, на левой боковой панели инструментов, третья кнопка сверху - кнопка "Add/Modify window definitions" (Добавить/Изменить определение окна). Справка ведь выводится в окне, мы своё окно пока не создавали, пользовались тем, что создается по умолчанию, а потому к настройкам окна доступа не имеем. Вот нам и нужно создать своё окно справки. Нажмите на эту кнопку. Вам будет предложено ввести имя нового окна. Имя может быть любое, например, Favorites.
Как только вы введете имя и нажмете "ОК", откроется окно Window Types с настройками нашего нового окна. Для добавления вкладки "Избранное" нам нужно перейти на вкладку "Navigation Pane" и включить флажок "Favorites tab":
(рис 28.13) Включение вкладки Избранное
Кроме того, перейдите на вкладку "Files" и в поле "Default" также укажите файл справки, который будет открываться по умолчанию.
Нажмите "ОК", и на этом наша работа с проектом завершена. Не забудьте сохранить проект командой меню "File -> Save project" или кнопкой с изображением дискетки.
Наш проект закончен, осталось скомпилировать саму справку - файл CodeBook.chm. Делается это очень просто: выберите команду главного меню "File -> Compile…". Вам будет предложено выбрать файл проекта, для которого компилируется справка, по умолчанию будет открыт наш проект
C:\Education\18-01\Help\CodeBook.hhp
Это нам и нужно. Рекомендую включить флажок "Save all files before compiling" (Сохранить все файлы перед компиляцией). После чего можете нажать кнопку "Compile".
Если вы всё сделали правильно, в правой части окна выйдет отчет о проделанной компиляции:
(рис 28.14) Отчет о компиляции
Как видите, ошибок в отчете нет, указано количество тем, локальных и Интернет-ссылок, изображений. Правда, не всегда эти количества соответствуют действительности, но тут уж ничего не поделать.
Также указано, что был создан файл CodeBook.chm размером 99,386 байт. На этом работа с проектом завершена, можете закрыть HTML Help Workshop.
Затем можете в Проводником или файловым менеджером открыть папку Help с проектом справки, и запустить файл CodeBook.chm прямо оттуда:
(рис 28.15) Работающая справочная система
Как видите, справка открывается, на ней присутствуют все 4 вкладки: "Содержание", "Указатель", "Поиск" и "Избранное". Можете поэкспериментировать с этими вкладками.
Есть пару замечаний. Первое: для показа этой справки система задействует инструменты программы MS Internet Explorer, но на каждой Windows эта программа установлена, так что беспокоиться тут нечего. Второе: справка самостоятельно запоминает последнее положение и размеры, которые установил пользователь. При последующем запуске справки эти положение и размеры будут восстановлены, что сильно облегчает нам работу.
Надо сказать, механизм подключения справочной системы к проекту в Lazarus ещё сыроват, и информации по этому вопросу немного. Одни советуют использовать несколько десятков строк кода, другие говорят, что это не помогает… В официальной документации (на английском языке) Lazarus советуют использовать компоненты THTMLHelpDatabase и THTMLBrowserHelpViewer с вкладки System. В качестве примера предлагают проект
C:\lazarus\examples\helphtml
Этот пример, почему то, выводит справку в браузере, установленном в системе по умолчанию. Затем мне всё же удалось запустить справку, однако справка открылась в окне просмотра Lazarus, а не системы. Это окно, как оказалось, с кириллицей "не дружит" - вместо русских букв выходили прямоугольнички.
В конце концов, мне удалось найти достаточно простой способ подключить к проекту справочную систему, о нем я вам сейчас и расскажу.
Прежде всего, скопируйте файл справки CodeBook.chm в папку с проектом программы. Можно было бы оставить его и в папке Help, особой разницы, откуда запускать справочник нет. Однако когда все файлы программы находятся в одной папке, то эту программу проще подготовить к распространению.
Далее, откройте проект программы в Lazarus - запустите файл CodeBook.lpi из папки с проектом, у меня это C:\Education\18-01. Откроется Lazarus с проектом программы. В Редакторе кода убедитесь, что открыта вкладка "Main" - вкладка главного окна. Перейдите на редактор форм. Откройте редактор главного меню (дважды щелкните по компоненту MainMenu1).
Нам нужно добавить еще один элемент в раздел меню "Справка". Выделите этот раздел, выделите его элемент "О программе", щелкните правой кнопкой мыши и выберите команду "Вставить новый пункт (перед)". Появится новый пункт меню. Выделите его, свойство Name переименуйте в HelpHelp, в свойстве Caption напишите Справка, а в свойстве ShortCut выберите горячую клавишу <F1>.
Сгенерируйте для этого пункта меню событие OnClick, код которого будет довольно простой:
procedure TfMain.HelpHelpClick(Sender: TObject);
begin
//вызываем справку:
WinExec('hh.exe CodeBook.chm',SW_SHOW);
end;
Процедура WinExec вызывает внешнее системное приложение hh.exe (системный просмотрщик справок) с загруженным файлом справки CodeBook.chm. Однако WinExec сразу же работать не будет - эта процедура прописана в модуле Windows, который нужно добавить в раздел uses. Добавьте, сохраните проект, перекомпилируйте его и запустите. Нажмите <F1> или выберите команду меню "Справка -> Справка" - наша справка должна загрузиться.
Если вы захотите распространять эту программу, вам для этого будет достаточно двух файлов: CodeBook.exe (сама программа) и CodeBook.chm (справка).
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.