Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.01.04;
Скачать: CL | DM;

Вниз

Приложение с несколькими chm файлами справки   Найти похожие ветки 

 
Darvin ©   (2008-02-13 13:47) [0]

Здравствуйте!
Я разрабатываю приложение, особенностью которого являются несколько справочных файлов. Раньше я писал справку в формате WinHelp и проблем не было. Для одних окон указывался один файл, а для других - другой и все работало. Теперь встала задача перенести справку в chm формат. Возникли сложности. Файл chm открыватся из каждого окна на нужной странице по контексту без вопросов, если в поле HelpFile ничего не задано. Файл переопределить получается, но для этого необходимо сделать:
Application.HelpFile := "OtherHelp.chm";
а перед завершением работы формы:
Application.HelpFile := "MainHelp.chm";
Вопрос вот в чем. Как можно централизовано перехватить обращение к справочной системе, проанализировать параметр "HelpFile" и вызвать нужный файл справки с указанным контекстом?


 
clickmaker ©   (2008-02-13 13:55) [1]

Application.OnHelp ?


 
Darvin ©   (2008-02-13 13:59) [2]

>clickmaker ©   (13.02.08 13:55) [1]
Не срабатывает. Точка останова не работает там.


 
Сергей М. ©   (2008-02-13 14:10) [3]


> Как можно централизовано перехватить обращение к справочной
> системе


Назначить всем формам единый обработчик OnHelp ?


 
Darvin ©   (2008-02-13 14:13) [4]

>Сергей М. ©   (13.02.08 14:10) [3]
не хотелось бы вносить изменения во все формы, их много, но в каждой прописан HelpFile и HelpContext. Хотелось бы перехватить вызов стандартного хелпа и обработать его централизовано.


 
Сергей М. ©   (2008-02-13 14:53) [5]


> не хотелось бы вносить изменения во все формы


Во все и не надо, достаточно в главную.

function TMainForm.AppHelp(Command: Word; Data: Longint; var CallHelp: Boolean): Boolean;
begin
 Application.HelpFile := Screen.ActiveForm.HelpFile;
 CallHelp := True;
end;

function TMainForm.FormCreate(Sender: TObject);
begin
 Application.OnHelp := AppHelp;
end;


 
Darvin ©   (2008-02-13 15:05) [6]

>Сергей М. ©   (13.02.08 14:53) [5]
спасибо


 
a_priori ©   (2008-02-27 20:15) [7]

Darvin, а не поскажите ли, как Вам удалось подсоединить chm? С winhelp -ом всё, конечно, просто, а вот с chm... бьюсь уже ни один день.. Была бы безмерно благодарна!!!


 
Amoeba ©   (2008-02-27 20:18) [8]

идем сюда:
http://www.ec-software.com/downloads_delphi.html


 
тимохов   (2008-02-28 00:23) [9]


> a_priori ©   (27.02.08 20:15) [7]

я вот этим пользовался http://www.helpware.net/delphi/index.html

я открываю так

var
  kHelpWindowHandle: HWND;
begin
  // Вызов справки
  kHelpWindowHandle := HtmlHelp(GetDesktopWindow(), PChar(aFileName),
     HH_HELP_CONTEXT, aHelpContext);

  // Обработка результата
  if kHelpWindowHandle = 0 then
     raise ECannotOpenHelp.Create("Невозможно открыть файл справки "+aFileName+"!")
  else
     SetForegroundWindow(kHelpWindowHandle);
end;


может я туп и CHM это хорошо, но крови у меня этот CHM выпил не менее литра.


 
тимохов   (2008-02-28 00:25) [10]

2априори

если решитесь юзать мой совет, то обратите внемание на коммент около HHCloseAll - типа где нужно вызывать его.


 
Tornado ©   (2008-02-29 08:39) [11]

a_priori ©   (27.02.08 20:15) [7]

http://www.kv.by/index2004021202.htm


 
Буланова   (2008-03-11 15:53) [12]


> тимохов   (28.02.08 00:23) [9]

Ваше предложение отличное, но в Delphi7 нет функции HtmlHelp(). Что делать?


 
Семеныч   (2008-03-11 16:47) [13]

> Буланова   (11.03.08 15:53) [12]

> Что делать?

Попробуйте все же зайти по ссылке. Если и после этого вопрос "что делать" все еще останется, то самый правильный ответ на него будет такой - менять род деятельности.


 
Буланова   (2008-03-12 11:02) [14]


> Семеныч   (11.03.08 16:47) [13]

По-моему, вы сами не знаете ответ на мой вопрос. Я задала конкретно про функцию HtmlHelp() в Delphi7 и что её заменяет. А ссылки посмотреть я могу и без вашего ответа.


 
Семеныч   (2008-03-12 13:22) [15]

> Буланова   (12.03.08 11:02) [14]

> По-моему, вы сами не знаете ответ на мой вопрос.

Знаю. И знает каждый, кто прочитал [9], сходил по ссылке, хотя бы бегло просмотрел страницу, хотя бы бегло прочитал документацию (которая там есть) и хотя бы немного подумал.

> Я задала конкретно про функцию HtmlHelp() в Delphi7 и что её заменяет.

Вы задали этот вопрос потому, что или не ходили по ссылке совсем, или зашли, но не дали себе труда хотя бы бегло просмотреть страницу, хотя бы бегло прочитать документацию (которая там есть) и хотя бы немного подумать. Если бы Вы это сделали, то вопроса бы не возникло.

Функции HtmlHelp в Delphi7, естественно, нет и быть не может. Ее ничто не заменяет. Чтобы она появилась, нужно предпринять некоторые мозго-мышечные усилия, притом очень небольшие. Начинаются эти усилия с того, что нужно сходить по ссылке, хотя бы бегло просмотреть страницу, хотя бы бегло прочитать документацию (которая там есть) и хотя бы немного подумать. И если после этого вопрос "что делать" все еще останется, то самый правильный ответ на него действительно будет такой - менять род деятельности.

> А ссылки посмотреть я могу и без вашего ответа.

Так и смотрите, что ж мешает-то?



Страницы: 1 вся ветка

Текущий архив: 2009.01.04;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.012 c
15-1225715882
bv7
2008-11-03 15:38
2009.01.04
MySQL + Delphi (доступ и редактирование данных)


15-1226226918
palva
2008-11-09 13:35
2009.01.04
Файл chm не показывает страниц


9-1176379296
frame3
2007-04-12 16:01
2009.01.04
delphix


15-1225721676
kazar
2008-11-03 17:14
2009.01.04
вопросы по Halcyon


15-1225862478
Slider007
2008-11-05 08:21
2009.01.04
С днем рождения ! 3 ноября 2008 понедельник