Как я могу использовать файл hlp для контекстно-зависимой справки в своем приложении?

У меня есть файл .hlp, который идет с приложением.
Поскольку функциональность не изменилась с тех пор, как я последний раз писал приложение, hlp (написанный в 2003 году) все еще действителен.
Однако, когда я компилирую приложение в Delphi XE7 Я не могу заставить приложение распознавать файл hlp.

В файле .dpr у меня есть

begin
  Application.Initialize;
  Application.HelpFile := 'Life32.hlp';
  Application.Run;
  //sometimes the application hung here, due to OLE issues
  //exitprocess prevents that.
  ExitProcess(0);
end.

Когда я делаю

procedure TProgCorner.Button2Click(Sender: TObject);
begin
  Application.HelpContext(4);
end;

я получил

Исключение первого шанса на $ 75EEB9BC. Класс исключения EHelpSystemException с сообщением «Контекстно-зависимая справка не установлена».

Свойству helpfile формы присвоено значение exename.hlp.
Двойной щелчок вручную по файлу .hlp в проводнике открывает файл hlp.

Как заставить Delphi открывать файл hlp при вызове?


person Johan    schedule 06.07.2016    source источник


Ответы (1)


Вы должны включить модуль Vcl.WinHelpViewer в свой проект для установки системы WinHelp.

Имейте в виду, что поддержка WinHelp закончилась в XP, и в более поздних версиях компонент WinHelp необходимо устанавливать отдельно.

person David Heffernan    schedule 06.07.2016
comment
on later versions the WinHelp component must be installed Устанавливается в Windows как отдельная загрузка с MS? или установлен в Delphi IDE? Я не знаю, потому что в моей системе W7 это сразу заработало. Кстати, WinHelpViewer и следующий твик исправили проблему: Application.HelpFile := ExtractFilePath(Application.ExeName)+'Life32.hlp'; - person Johan; 06.07.2016
comment
Ничего общего с идеей. Это загрузка с MS. Вы уже установили его на свой компьютер с Win7. - person David Heffernan; 06.07.2016
comment
Существует модифицированный сценарий установки, который установит winhelp на Win10. См. answers.microsoft.com/en-us/windows/forum/ и прокручивайте, пока не найдете имя "Бахампур". - person MartynA; 06.07.2016