|
Вызвать CHM-справку из программы на Delphi 2010
|
|||
---|---|---|---|
#18+
1. Раньше я разрабатывал свою электронную справку в Help & Manual и сохранял в формате chm, или "HTML Help", то есть, например, "helpfile.chm". 2. Для вызова helpfile.chm из приложения использовался удобный известный файл из DelphiWorld, а именно StoHtmlHelp.pas (www.delphisources.ru/pages/faq/base/chm_use.html). Это замечательно работало из-под Delphi 7, 2007, 2009. А вот в Delphi 2010 вдруг перестало. 3. Что делать - как вызвать CHM-справку из программы на Delphi 2010? PS "Родной" дельфийский файл HTMLHelpViewer.pas тоже, как тут советовали некоторые, пробовал - кажет пустое окно или "переход отменен". ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2010, 16:34 |
|
Вызвать CHM-справку из программы на Delphi 2010
|
|||
---|---|---|---|
#18+
Кстати, в JCL\JVCL порылся - ничего нету для показа "электронной справки" в формате CHM. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2010, 17:13 |
|
Вызвать CHM-справку из программы на Delphi 2010
|
|||
---|---|---|---|
#18+
AndroidZombi, а что ShellExecute не работает? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2010, 17:15 |
|
Вызвать CHM-справку из программы на Delphi 2010
|
|||
---|---|---|---|
#18+
Barmaley57AndroidZombi, а что ShellExecute не работает? Да работает, конечно... Только надо, чтоб еще по контексту открывался нужный топик для каждого сфокусированного контрола. Роскошь конечно, только зачем еще нужна "контекстно-чувствительная справка"? А так, отдельный файл - это уж просто электронный документ, можно и не chm, тогда, а pdf или rtf... ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2010, 17:23 |
|
Вызвать CHM-справку из программы на Delphi 2010
|
|||
---|---|---|---|
#18+
AndroidZombiможно и не chm, тогда, а pdf или rtf... Правильно, в топку этот кривой HH, классический WinHelp рулит! Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2010, 19:05 |
|
Вызвать CHM-справку из программы на Delphi 2010
|
|||
---|---|---|---|
#18+
Быть может helpware поможет? (переформатировать справку) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2010, 19:34 |
|
Вызвать CHM-справку из программы на Delphi 2010
|
|||
---|---|---|---|
#18+
а если так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2010, 21:01 |
|
Вызвать CHM-справку из программы на Delphi 2010
|
|||
---|---|---|---|
#18+
sann-x Код: plaintext 1.
Очепятка: должно быть Код: plaintext 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2010, 21:02 |
|
Вызвать CHM-справку из программы на Delphi 2010
|
|||
---|---|---|---|
#18+
GatorБыть может helpware поможет? (переформатировать справку) Спасибо, попробую! Вы-то не пробовали сами? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2010, 09:01 |
|
Вызвать CHM-справку из программы на Delphi 2010
|
|||
---|---|---|---|
#18+
sann-xа если так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9.
А вот это прикольно, sann-x! Если сработает, то просто THANKS! ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2010, 09:03 |
|
Вызвать CHM-справку из программы на Delphi 2010
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov AndroidZombiможно и не chm, тогда, а pdf или rtf... Правильно, в топку этот кривой HH, классический WinHelp рулит! Да особых проблем-то с кривизной HH не было уже 5 лет, а вот сколько кривизны в Delphi... WinHelp рулит, но в HH есть ряд преимуществ, например: 1. Отображение древовидного оглавления в главном окне. 2. Возможность распечатать документиком сразу целую ветку из этого древовидного оглавления, или - при наличии одного корневого узла-папки - сразу весь CHM. Почему эта конкретная проблема - никто не высказался. Э-эх, сыскать бы автора StoHtmlHelp, // Author: Martin Stoeckli да заставить его проапгэйдить свой код, на который ведь многие наверно уже подсели! ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2010, 10:26 |
|
Вызвать CHM-справку из программы на Delphi 2010
|
|||
---|---|---|---|
#18+
AndroidZombiPS "Родной" дельфийский файл HTMLHelpViewer.pas тоже, как тут советовали некоторые, пробовал - кажет пустое окно или "переход отменен". просто не умеешь. У меня уже давно сделано так: - хелп компиляю в chm при помощи старого микрософтовского Help Workshop. там же есть определения файл project.h, в нем константы типа #define IDH_About 1000 #define IDH_Summary 2000 и т.д. в файле проекта есть секция [MAP] #include project.h и есть алиасы [ALIAS] IDH_About=about.htm IDH_Summary=database.htm ... в программе: - uses HTMLHelpViewer - причем давно родной, а не внешний. - в onCreate главной формы - Application.HelpFile:=ExtractFilePath(ParamStr(0))+Constants.HelpFile; тут буквально получается Application.HelpFile:='c:\....\project.chm' - для вызова конкретного раздела из конкретного места: Application.HelpKeyword('Summary'); где Summary - название страницы - для вызова контекстного хелпа по F1, в нужной форме просто прописывается проперть HelpContext в значение, например 1000 - см. выше, это определено для IDH_About. Основной трах с Help Workshop, но если один раз это дело решить, то потом пойдет много легче. И не надо будет никаких shellexecute :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2010, 11:33 |
|
Вызвать CHM-справку из программы на Delphi 2010
|
|||
---|---|---|---|
#18+
и еще дополнение по самому Help Worksop. в chm можно зашить "свойства" открытия окна хелпа (Add/Modify window definitions в воркшопе), при этом если скрыть навигационную панель, то пользователя поражает тупняк, и он с вероятностью 99% никогда не догадается нажать кнопку "Показать" в меню chm. Так что в свойствах проекта нужно обязательно делать включенным Window with navigation pane, topic pane and button и не включать Open with navigation pane closed также установить Default tab в Contents, чтобы показывась закладка дерева хелпа, а не поиск и т.п. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2010, 11:41 |
|
Вызвать CHM-справку из программы на Delphi 2010
|
|||
---|---|---|---|
#18+
AndroidZombi 3. Что делать - как вызвать CHM-справку из программы на Delphi 2010? PS "Родной" дельфийский файл HTMLHelpViewer.pas тоже, как тут советовали некоторые, пробовал - кажет пустое окно или "переход отменен". Итак, постскриптум, господа. Проблема на сегодняшний день решена, не знаю, надолго ли. 1. От StoHtmlHelp.pas отказался вовсе, так как автор его не поддерживает, и на своем сайте написал, что начиная с Delphi 2005 надо пользовать "родной" дельфийский файл HTMLHelpViewer.pas () 2. Удалось добиться, чтобы HTMLHelpViewer.pas срабатывал как надо - для этого пришлось передвинуть ссылку на HTMLHelpViewer в списке uses файла проекта из конца uses в самое начало. Если HTMLHelpViewer в начале uses - все работает. Если в конце - или ничего не происходит по команде или событию вызова справки - или такое поведение как в цитате. Так что судите сами, в чем тут зарыта проблема. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2010, 11:45 |
|
Вызвать CHM-справку из программы на Delphi 2010
|
|||
---|---|---|---|
#18+
по пункту 2 - неправда. у меня HTMLHelpViewer указан ПОСЕРЕДИНЕ uses. Буквально так: implementation uses ibheader, tablestat, indexStat, dlgDb, dbinfofr, dblistfr, constants, options, about, dbrecom, reinit, utils, DateUtils, math, HTMLHelpViewer, RegFrm, ib, uGenHwID, RegForm, uFileFunc, StrData, UTranCalc, DMData, Monitor; Специально попробовал переставить в начало и конец uses - по барабану, никакой реакции, все как работало, так и работает. Если на программу влияет изменение порядка модулей, значит в каком-то модуле кто-то определил нечто глобальное, что конфликтует с другим модулем. Или, инициализация одного модуля забивает другую. Других причин такого поведения не знаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2010, 11:53 |
|
Вызвать CHM-справку из программы на Delphi 2010
|
|||
---|---|---|---|
#18+
блин, забыл уточнить - конечно я проверял в D2007. В D2010 проблема может существовать, бесспорно. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2010, 11:58 |
|
Вызвать CHM-справку из программы на Delphi 2010
|
|||
---|---|---|---|
#18+
kdvAndroidZombiPS "Родной" дельфийский файл HTMLHelpViewer.pas тоже, как тут советовали некоторые, пробовал - кажет пустое окно или "переход отменен". просто не умеешь. У меня уже давно сделано так: - хелп компиляю в chm при помощи старого микрософтовского Help Workshop. [...] Основной трах с Help Workshop, но если один раз это дело решить, то потом пойдет много легче. И не надо будет никаких shellexecute :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2010, 12:18 |
|
Вызвать CHM-справку из программы на Delphi 2010
|
|||
---|---|---|---|
#18+
kdvAndroidZombiPS "Родной" дельфийский файл HTMLHelpViewer.pas тоже, как тут советовали некоторые, пробовал - кажет пустое окно или "переход отменен". просто не умеешь. У меня уже давно сделано так: - хелп компиляю в chm при помощи старого микрософтовского Help Workshop. [...] Основной трах с Help Workshop, но если один раз это дело решить, то потом пойдет много легче. И не надо будет никаких shellexecute :-) Извиняюсь, забыл написать-то... Просто не понимаешь. Файл-то chm "хороший", хоть я и умею делать его только Help-Manual-ом, а варкшопом-нет. Глюк получается, имхо, из-за делфи. Тем не менее, твоя инфа весьма интересна. Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2010, 12:24 |
|
Вызвать CHM-справку из программы на Delphi 2010
|
|||
---|---|---|---|
#18+
AndroidZombi> Вы-то не пробовали сами? Как раз сейчас штудирую. В очередной раз... ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2010, 12:44 |
|
Вызвать CHM-справку из программы на Delphi 2010
|
|||
---|---|---|---|
#18+
to AndroidZombi Если ничего не получается в новой Delphi, можно было бы написать на старой Delphi маленькую DLL с единственной функцией, вызывающей справку и использовать эту DLL из новой. И мороки будет меньше, и результат получишь быстрее. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2010, 12:54 |
|
Вызвать CHM-справку из программы на Delphi 2010
|
|||
---|---|---|---|
#18+
Кроик Семён, +1 ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2010, 12:55 |
|
Вызвать CHM-справку из программы на Delphi 2010
|
|||
---|---|---|---|
#18+
Кроик Семён to AndroidZombi Если ничего не получается в новой Delphi, можно было бы написать на старой Delphi маленькую DLL с единственной функцией, вызывающей справку и использовать эту DLL из новой. И мороки будет меньше, и результат получишь быстрее. Как написано выше, уже получается, при помощи HTMLHelpViewer.pas. С DLL-кой же мороки будет немало, так как справка должна запускаться двояко - по F1 (контекстно) и по команде Справка\Оглавление (тут надо показать понятно что). Так что мороки хватит, но, надеюсь не мне ;-) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2010, 14:10 |
|
Вызвать CHM-справку из программы на Delphi 2010
|
|||
---|---|---|---|
#18+
GatorAndroidZombi> Вы-то не пробовали сами? Как раз сейчас штудирую. В очередной раз... Если что получится - поделись уж? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2010, 14:13 |
|
Вызвать CHM-справку из программы на Delphi 2010
|
|||
---|---|---|---|
#18+
К выше сказанному можно добавить следующее. В общем случае может быть несколько файлов помощи - у каждой формы есть свое свойство HelpFile. Для назначения пути к файлам, назначения файла помощи по умолчанию, а также для переопределения поведения THTMLHelpViewer может быть полезно реализовать интерфейс IHtmlHelpTester Назначение методов должно быть понятно из их названия. Метод ConvertWinHelp полезен для "нормализации" работы стандартных Action (THelpTopicSearch, THelpOnHelp и т.д.). Под D2010 все хорошо работает. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72.
... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2010, 02:02 |
|
Вызвать CHM-справку из программы на Delphi 2010
|
|||
---|---|---|---|
#18+
Barmaley57AndroidZombi, а что ShellExecute не работает? а у меня не работает (я по С++) делаю: WinExec("hh.exe -mapid 106 c:\\wds.chm",SW_SHOWNORMAL); появляется курсорчик процесса и ничего не показывает ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2010, 15:17 |
|
|
start [/forum/topic.php?fid=58&msg=36424698&tid=2036705]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
39ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
others: | 307ms |
total: | 444ms |
0 / 0 |