Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.144.161.116] |
|
Страницы: (2) [1] 2 все ( Перейти к последнему сообщению ) |
Сообщ.
#1
,
|
|
|
люди добрые!!!
столкнулся с проблемой генерации файлов справки CHM, а компонентов для работы не нашел ... может у кого есть компонент TChmFile - а то автор собака не хочет делиться ... согласен и на старую версию, но нужны сорцы на дельфях ... заранее спасибо если кто что найдет ... Добавлено кстати вспомнил ... про dll-ы с исходников знаю ... они не нужны |
Сообщ.
#2
,
|
|
|
Генерация файлов справки CHM делается старинной (бесплатной) программой HTML Help Workshop. Легко нахОдится на сайте билла. Не без недостатков, но достойной альтернативы не нашёл, имхо.
Причём тут TChmFile не понял. Кстати, начиная с Delphi2006 файлы справки .chm подключаются к программе почти так же легко, как и .hlp. Спросите меня "как". |
Сообщ.
#3
,
|
|
|
В принципе сам формат не очень сложный. Вот описание формата. Хотя где-то у меня и валялся этот компонент вроде, постараюсь поискать...
|
Сообщ.
#4
,
|
|
|
Очень хороший инструмент для составления различных справок CHM и HLP
или декомпиляции их в исходники Help & Manual 4.5 сама программа качается с http://www.helpandmanual.com/ если при компиляции проекта убрать галочку "Удалять исходники", то в каталоге Source останутся файлы проекта, которые потом можно компилировать и другими программами. Не все файлы декомпилируются полноценно - это особенности справочных форматов. Ну а если хочется из своей программы - то надо сформировать html файлы статей, скриптов js (для всплывающих подсказок по наведению курсора) и файлы проекта hhp, hhk, hhc... и запустить Микрософтовский HTML Help Workshop через командную строку ShellExecuteEx(@SEInfo) procedure TForm1.btCompileClick(Sender: TObject); var SEInfo: TShellExecuteInfo; ExitCode: DWORD; ExecuteFile, ParamString, LogString, StartInString: string; begin ParamString:='C:\notepad\notepad.hhp'; // проект LogString:='C:\notepad\notepad.log'; //файл отчета/ошибок StartInString:='C:\Program Files\HTML Help Workshop'; //каталог компилятора ExecuteFile := 'C:\Program Files\HTML Help Workshop\hhc.exe '; // компилятор FillChar(SEInfo, SizeOf(SEInfo), 0); SEInfo.cbSize := SizeOf(TShellExecuteInfo); with SEInfo do begin fMask := SEE_MASK_NOCLOSEPROCESS; Wnd := Application.Handle; lpFile := PChar(ExecuteFile); {ParamString can contain theapplication parameters.} lpParameters := PChar(ParamString); {StartInString specifies thename of the working directory.If ommited, the current directory is used.} lpDirectory := PChar(StartInString); nShow := SW_SHOWNORMAL; end; if ShellExecuteEx(@SEInfo) then begin repeat Application.ProcessMessages; GetExitCodeProcess(SEInfo.hProcess, ExitCode); until (ExitCode <> STILL_ACTIVE) or Application.Terminated; ShowMessage('Компиляция закончена'); //Не обязателен end else ShowMessage('Error starting Компиляции!'); RichEdit2.Clear; RichEdit2.Lines.LoadFromFile(LogString); //Вывод лога от компилятора end; |
Сообщ.
#5
,
|
|
|
Цитата Selya @ Спросите меня "как". Если имееться в виду HTMLHelpViewer, то у меня он почему-то не смог подхватить справку скомпилированную в Help&Manual. Я изпользую StoHtmlHelp. |
Сообщ.
#6
,
|
|
|
Спасибо большое за советы с ПО особенно от "макрософта" но нужен именно компонент с исходниками хочется ручками дойти ... самому ...
|
Сообщ.
#7
,
|
|
|
Profi
А чем принципиально отличается CHM, собранный в Help&Manual от собранного в HTML Help Workshop? У меня прекрасно всё получилось подцепить с помощью HTMLHelpViewer в Delphi 2007, и справка вызывается как из меню, так и по F1 в контексте. Единственное была проблема: При вызове справки из пункта меню вместо Application.HelpSystem.ShowTableOfContents; надо использовать Application.HelpShowTableOfContents; А при вызове топика справки по индексу вместо Application.HelpSystem.ShowContextHelp(IDH_About, ''); надо использовать Application.HelpContext(IDH_About); // или Application.HelpContext(0); // т.к. IDH_About=0 (в файле с индексами map.h) Так же прекрасно работает и MessageDlg('Click Help',mtWarning,[mbOk,mbHelp],IDH_Feedback); // где IDH_Feedback имеет индекс 2 в map.h |
Сообщ.
#8
,
|
|
|
Selya
Interface not supported. |
Сообщ.
#9
,
|
|
|
Ну вот, я же писал выше, что лучшей альтернативы HTML Help Workshop я так и не нашёл, несмотря на все его глюки вылеты и "Win3.1" интерфейс
|
Сообщ.
#10
,
|
|
|
Цитата Selya @ Ну вот, я же писал выше, что лучшей альтернативы HTML Help Workshop я так и не нашёл, несмотря на все его глюки вылеты и "Win3.1" интерфейс Так Help&Manual и использует HTML Help Workshop в кочестве компилятора для chm. |
Сообщ.
#11
,
|
|
|
И ещё такой момент, какой у тебя стоит Internet Explorer? Попробовал сейчас дома сляпать CHM демо проект - не получилось Internet Explorer 7
На работе ослика не обновлял - там всё нормально компилится! |
Сообщ.
#12
,
|
|
|
Цитата Profi @ Help&Manual Бывший коллега делал все в Help&Manual, и я без проблем прицеплял chm-ину к проету. Может версия e тебя старая, или не регестрированная. Помню точно были проблемы с Trial версией, пришлось "купить" |
Сообщ.
#13
,
|
|
|
Вот написал демо проект Delphi&CHM, всё прекрасно работает. Пользуйте на здоровье и помяните меня добрым словом.
Прикреплённый файлDelphi_CHM.rar (198.28 Кбайт, скачиваний: 860) |
Сообщ.
#14
,
|
|
|
Selya спасибо за исходничок но нужно не только работать с CHM-файлами но и компилить их самостоятельно без внешнего ПО ... если есть что-то по этой тематике то напиши ....
|
Сообщ.
#15
,
|
|
|
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 необходимо выполнить следующий код в Вашей программе: ocedure 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. Взято с www.interface.ru Прикреплённый файлkkyyhhd.zip (26.21 Кбайт, скачиваний: 404) |