Как я могу использовать файл 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 при вызове?
2 ответа
Вы должны включить Vcl.WinHelpViewer
модуль в вашем проекте для установки системы WinHelp.
Имейте в виду, что поддержка WinHelp прекратилась в XP, и в более поздних версиях компонент WinHelp должен быть установлен отдельно.
Для более поздних версий Delphi, таких как 10 (Сиэтл), 10.1 (Берлин), 10.2 (Токио), 10.3 (Рио) и 10.4 (Сидней):
- Если ваш файл справки представляет собой файл WinHelp .hlp, добавьте модуль Vcl.WinHelpViewer в раздел uses приложения.
- Если ваш файл справки представляет собой файл .chm HTML-справки, добавьте модуль Vcl.HtmlHelpViewer вместо модуля Vcl.WinHelpViewer.
Вы не должны добавлять оба блока в одно приложение.
Полная статья: Редактор свойств HelpContext от HelpScribble