Использование HTML-помощи в Clarion


В Windows 3.1 стандартная подсистема помощи Windows была реализована как  help engine (winhelp.exe), которая использует файлы в формате rich-text (.RTF) скомпилированные в файлы помощи собственного формата (.HLP).  С появлением Windows 95, Microsoft добавила 32-разрядный help engine (winhlp32.exe), но оставила стандартный формат файлов помощи .HLP.

В роследние несколько лет акцент был перенесен с файлов .HLP на более стандартные файлы HTML (.HTM или .HTML), или сжатые/компилированные HTML файлы (.CHM).  Проьлема в том (уже не в первый раз) Clarion не поддерживает эту технологию и приложения Clarion сейчас все еще используют "старомодные" файлы помощи.

Для разработчиков, которые хотят использовать в своих приложениях HTML-помощь, возникает две проблемы - как вызывать помощь по клавише F1, и как использовать файлы помощи HTML.  Так как первая проблема уже обсуждена в другой статье, то я перехожу к обьяснению доступных вам вариантов.  Их в основном три:

  1. Поместить OCX  HTML-браузера в окно Clarion, и указать ему файл HTML.

    Это не реальное решение HTML-помощи. Да, вы покажите файлы HTML-помощи, но только потому что вы еще раз изобретете колесо. И хотя это может и не проблема для вас, но ваши клиенты могут жаловаться на то что ваша HTML-помощь не выглядит так же как во всех других местах.
  2. запустить HH.EXE (HTML help engine) с HTML-файлом в качестве параметра командной строки.

    Это самый легкий способ интеграции HTML-помощи с вашим приложением.  Задать нужный раздел помощи можно просто путем изменения фала-параметра, который передается  help engine.  Если HTML-помощь не инсталлирована, то вызов RUN() просто завершится неудачей.
  3. Вызвать функцию API - HTMLHelp() и передать ей имя файла как параметр.

    Этот способ реализовать сложнее, хотя бы потому что вам нужно найти DLL для линковки при копиляции вашего приложения.  И, хотя у вас этот DLL может быть,  у ваших клиентов его может не быть, что означает что все приложение не сможет загрузится при попытке его запуска.

Полное решение

  program
  include('keycodes.clw')
  map
  end

Window WINDOW('HTML Help Test Application'),AT(,,185,37),FONT('MS Sans Serif',8,,FONT:regular),CENTER, |
         GRAY
       BUTTON('&Cancel'),AT(117,9,36,14),USE(?CancelButton)
       PROMPT('Press F1 to get HTML help'),AT(19,12),USE(?Prompt1)
     END

  code
  open(window)
  alias(f1key,okey)
  alert(okey)
  accept
    case event()
    of event:accepted
      case accepted()
      of ?cancelbutton
        break
      end
    of event:prealertkey
      case keycode()
      of okey
        run('hh.exe help.htm')
      end
    end
  end
  close(window)

Назад на мою домашнюю страницу, или послать мне письмо paula@attglobal.net