Ноу Інти, лекція, створення довідкової системи

Анотація: Лекція носить факультативний характер. Ми розглядаємо всі етапи розробки довідкової системи, освоюємо програми NVU і MS HTML Help Workshop, розробляємо довідкову систему, підключаємо його до проекту Lazarus.

мета лекції

На лекції освоюються прийоми розробки довідкової системи і підключення цієї системи до проекту Lazarus.

Створення довідкової системи

Будь-який серйозний проект повинен бути забезпечений докладною довідковою системою, що дозволяє користувачеві розібратися з тим, як працює ваша програма. Адже якби не "Хелп", ми з вами навряд чи змогли самостійно освоїти якусь складну програму. І в цій лекції ми навчимося створювати довідкові системи і підключати їх до проекту. Нагадаю, що хоч Lazarus і є крос-платформної середовищем розробки програм, ми освоюємо роботу з ним під управлінням ОС Windows. Якщо ви користуєтеся Lazarus в середовищі Linux, Unix або інший не Windows ОС, то рекомендації з цієї лекції вам навряд чи підійдуть. В цьому випадку, вам доведеться пошукати даний матеріал самостійно.

Отже, довідка може бути двох форматів: * .hlp і * .chm. Обидва формати розроблені корпорацією Microsoft. Формат HLP є застарілим, хоча і зустрічається до сих пір, але зараз найбільш поширеним форматом довідки в середовищі Windows є CHM, його і розглянемо.

Цей інструмент повинен бути:

  • безкоштовним;
  • досить потужним для створення довідок будь-якої складності.

Або ж ви можете завантажити цей інструмент з мого сайту, який замислювався для підтримки цього курсу:

Це HTML Help Workshop версії 4.74.8702 - програма для створення довідкової системи.

HTML Help Workshop (hhw.exe) - програма. володіє чималими можливостями, хоча і непроста в експлуатації, і не має українського інтерфейсу. Програма дозволяє створювати всі необхідні файли довідки, з яких потім компілюється єдиний проект.

а MS Word вставляє зображення в колекцію Shapes.

Іншим варіантом в Інтернеті нерідко радять програму з того ж офісу MS FrontPage. Що ж, в перших версіях ця програма дійсно, була хороша: досить проста, дозволяла створювати веб-сторінки візуально, не вимагала від користувача знань HTML. Однак з часом, FrontPage (як і інша продукція Microsoft) все більше ускладнювалася, в неї додавалися все нові, невідомо кому потрібні функції, і тепер MS FrontPage - неповороткий монстр, для вивчення якого буде потрібно досить важкий підручник.

Ноу Інти, лекція, створення довідкової системи

Тепер повернемося до нашої довідці. Сподіваюся, ви зберегли проект Блокнота-шифрувальника з 18-ї лекції? Для цього проекту ми і будемо створювати довідкову систему. Перш за все, нам потрібно розробити структуру майбутньої довідки. Вміст довідки являє собою деревоподібну структуру, в якій можуть бути книги і сторінки. Книга в HTML Help Workshop - це розділ, який має підрозділи, такі книги можуть бути вкладеними. Сторінка - це кінцевий розділ, який не має підрозділів. Наша програма не настільки непроста, тому і структура буде достатньо простої:

Тут ми маємо дві сторінки: "Призначення програми" і "Зворотній зв'язок", а також книгу "Команди меню", яка в свою чергу. містить ще 5 сторінок: "Файл", "Правка", "Формат", "Кодування" і "Довідка".

Таким чином, нам доведеться зробити 8 HTML-файлів, окремо на книгу і на кожну зі сторінок. Я не буду наводити повні листинги цих файлів - вміст довідки буде залежати від вашої фантазії, але деякі показові теги я приведу. Ось, наприклад, як я вказував посилання на існуючі сторінки керівництва:

Ноу Інти, лекція, створення довідкової системи


Мал. 28.2. Демонстрація посилань на інші сторінки керівництва

Код я привів у вигляді зображення, щоб теги прикладу не конфліктували з тегами самої лекції. Причому текст HTML-файлу відкритий в простому Блокноті, щоб побачити теги в NVU, потрібно відкрити вкладку "Код" в нижній частині робочого вікна.

А так у мене вставляється зображення:


Мал. 28.3. Демонстрація посилань на зображення

Дякуємо за Ваш чудовий курс!

У самостійній роботі №2 при компіляції модуля MyCript.pas (ОС: Windows 7 x64, Lazarus 1.4 win64) видається помилка на код асемблера

mycript.pas (54,5) Error: Asm: [push reg32] invalid combination of opcode and operands
mycript.pas (95,5) Error: Asm: [pop reg32] invalid combination of opcode and operands

Я розумію, що курс готувався для 32 розрядних ОС, але як бути в разі 64 розрядних систем?

У обробниках пунктів меню FileCreate і FileOpen, а також в обробнику закриття форми OnClose - в цих трьох процедурах міститься один і той же код

їх перед створенням нового тексту>
if Memo1.Modified then begin
// якщо користувач згоден зберегти зміни:
if MessageDlg ( 'Збереження файлу',
'Поточний файл був змінений. Зберегти зміни?',
mtConfirmation, [mbYes, mbNo, mbIgnore], 0) = mrYes then
FileSaveClick (Sender);
end; // if

Дозвольте запитати: чи не краще було б винести цей код в окрему процедуру, наприклад - в обробник події форми OnCloseQuery? Наскільки я пам'ятаю з досвіду Delphi, виклик цієї процедури сам по собі не повинен призводити до закриття форми. А значить, її можна використовувати і в процедурах очищення Memo1 і читання з файлу. Або в Lazarus так робити не можна?

Схожі статті