(495) 925-0049, ITShop интернет-магазин 229-0436, Учебный Центр 925-0049
  Главная страница Карта сайта Контакты
Поиск
Вход
Регистрация
Рассылки сайта
 
 
 
 
 

Создание CHM-файлов с помощью Delphi (исходники)

Источник: delphiplus

В последнее время очень популярным форматом справочной документации и электронных книг стал формат CHM. Это связано с удобством этого формата по сравнению с форматом HLP, а также с "продвижением" этого формата самой MICROSOFT. В данной статье, я хочу рассказать, как создать файлы справки CHM с помощью программ, написанных на Delphi, но без помощи таких общеизвестных утилит, как hhc.exe и hha.dll.

Способ первый: С помощью компоненты TCHMFile

TCHMFile - это единственная VCL компонента для компиляции и декомпиляции нескольких HTML документов в один CHM-файл.

Разберём процесс компиляции CHM документа на примере следующего кода:

procedure Compile;
var
  F: TChmFile;
begin
  F := TChmFile.Create('c:\test.chm', omCreateWrite);
   with TChmHeader.Create do
   begin
    Toolbar := True;
    ToolbarCaptions :=True;
    Buttons := [cbHome, cbBack];
    Title := 'Test';
    Default file := 'index.htm';
    TocFile := 'Table of Contents.hhc';
    IndexFile := 'Ind.hhk';
    PaneVisible := True;
    PaneTocTab := True;
    PaneFavTab := True;
    PaneIndexTab := True;
    PaneTabPos := ctpTop;
    WndName:='main';
    PaneWidth:=200;
    Left:=100;
    Top:=100;
    Height:=500;
    Width:=800;
    Write(F);
    Free;
   end;
  F.AddFile('index.htm', 'C:\test\index.htm');
  F.AddFile('images\pic.jpg', 'C:\test\images\pic.jpg');
  F.Free;
end.

Эта процедура создаёт CHM-файл, путь которого "c:\test.chm", а его свойства устанавливаются с помощью TChmHeader:

  • Toolbar - параметр, с помощью которого в CHM-файле показывается панель управления;
  • ToolbarCaptions - параметр, указывающий, что необходимо отображать подписи к кнопкам;
  • Buttons - здесь указываются кнопки, которые будут отображаться на панели управления. Возможные варианты кнопок: cbExpand (Скрыть), cbBack (Назад), cbForward (Далее), cbStop (Остановить), cbRefresh (Обновить), cbHome (Домашняя страница), cbZoom (Размер), cbOptions (Параметры), cbPrint (Печать), cbJump1 (Первая пользовательская кнопка), cbJump2 (Вторая пользовательская кнопка);
  • Title - название справочной системы, которое будет отображаться в заголовке главного окна;
  • Default file - имя страницы по умолчанию, которая открывается сразу после загрузки файла;
  • TocFile - имя файла Содержания справочной системы;
  • IndexFile - имя файла Индекса справочной системы;
  • PaneVisible - параметр, указывающий отображать панели;
  • PaneTocTab - параметр, указывающий на создание панели "Содержание";
  • PaneFavTab - параметр, указывающий на создание панели "Избранное";
  • PaneIndexTab - параметр, указывающий на создание панели "Указатель";
  • PaneTabPos - местоположение вкладок на панели навигации. Возможные варианты: ctpTop (Сверху), ctpLeft (Слева), ctpBottom (Снизу);

Свойства главного окна:

  • WndName - название окна, в котором откроется справка во время просмотра. Желательно задавать значение "main";
  • PaneWidth - ширина навигационной панели в пикселях (по умолчанию это значение равно 250);
  • Left - положение главного окна справки слева, указывается в пикселях;
  • Top - положение главного окна справки сверху, указывается в пикселях;
  • Height - высота главного окна справки, указывается в пикселях;
  • Width - ширина главного окна справки, указывается в пикселях;

Далее идёт процесс записи файла на диск (собственно создание файла CHM) и добавление в справочную систему всех необходимых файлов (HTML документов, рисунков, относящихся к этим документам и др.).

Способ второй: С помощью динамической библиотеки kkyyhhd.dll

kkyyhhd.dll была найдена мною на просторах интернета. Для компиляции справки CHM Вам понадобится файл проекта (HHP). Обычно этот формат выглядит так:

[OPTIONS]
Compatibility=1.1 or later
Compiled file=Справка.chm
Contents file=Table of Contents.hhc
Default window=main
Default topic=index.htm
Full-text search=Yes
Index file=Ind.hhk
Language=0x419 Русский

[WINDOWS]
main="Название","Table of Contentc.hhc","Ind.hhk","index.htm","home.htm",,,,,132128,200,8198,[119,78,769,534],0,0,,,,1,0

[FILES]
C:\test\index.htm
C:\test\home.htm
C:\test\lis1.htm

Подробное описание параметров данного формата, а также форматов HHC и HHK, Вы можете посмотреть здесь.

Чтобы создать файл CHM необходимо выполнить следующий код в Вашей программе:

procedure AddLog(Memo: TMemo; SStr: PChar; Addn:bool=false);
begin
    Memo.Text := Memo.Text + SStr;
    if Addn then Memo.Text := Memo.Text + #13#10;
end;

procedure pLogString(pMsg: PChar); stdcall;
begin
    AddLog(Form1.Memo1,pMsg);
end;

function pProgress(pFile: PChar):bool; stdcall;
begin
    AddLog(Form1.Memo2,pFile,true);
    Result := True;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
    Had: HWND;
    hhp:  function(pszHhpFile: PCHAR; pLogString: Pointer; pProgress: Pointer):bool;stdcall;
begin
    Had := LoadLibrary('kkyyhhd.dll');
    if Had <> 0  then
      begin
        @hhp := GetProcAddress(Had, 'CompileHHP');
        if @hhp <> nil then
          hhp(PCHAR('Путь к файлу HHP'),@pLogString,@pProgress);
        FreeLibrary(Had);
   end;
end;

При этом в папке с файлом проекта HHP появится справка CHM, а в самой программе в TMemo Вы увидите детальный log, примерно такой же как в программе Microsoft HTML Help Workshop.

На этом пожалуй всё. Надеюсь эта статья многим поможет быстро создавать и использовать документацию в формате CHM.

Ссылки по теме

Файлы для загрузки


 Распечатать »
 Правила публикации »
  Написать редактору 
 Рекомендовать » Дата публикации: 09.11.2006 
 

Магазин программного обеспечения   WWW.ITSHOP.RU
Traffic Inspector GOLD 5 Учетных записей
Купить Антивирус Dr.Web Server Security Suite для сервера
Quest Software. TOAD Professional Edition
TeeChart for .NET with source code single license
Quest Software. Toad for DBA Suite for Oracle
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Новости ITShop.ru - ПО, книги, документация, курсы обучения
Программирование на Microsoft Access
CASE-технологии
СУБД Oracle "с нуля"
Мастерская программиста
Каждый день новые драйверы для вашего компьютера!
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
 



    
rambler's top100 Rambler's Top100