Delphi XE2: переход на якорь в CHM?
в программе Delphi XE2, как перейти к якорю внутри раздела файла справки CHM? Якорь имеет следующий формат (извлеченный из источника страницы темы в HTML HelpViewer, показывающей файл CHM):
<a name="my_anchor_id"></a>
я попробовал следующий:
Application.HelpJump('MyTopicName.htm#my_anchor_id');
к сожалению, это не работает: он переходит к этой теме, но только к верхней части темы, а не к якорю, который несколько прокруток вниз по странице.
1 ответов
Прыжки на якорь в CHM
Протестировано с Delphi2010-DelphiXE2-Windows XP
как перейти к якорь в файле chm (скомпилированная HTML-справка) с Delphi.
да, можно с помощью команды HtmlHelp() перейти к якорю.<a name="my_anchor"></a>
HtmlHelp(0,hpPath+'::/Overview.htm#UsingtheMenus>main',HH_DISPLAY_TOPIC,DWORD(nil));
ссылка в: обзор.НТМ
- Примечание: эта ссылка не нужны прыгать через программа delphi для
якорь.(Только для тестирования).
обзор.НТМ
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
[...]
<BODY bgColor=#f7f8e2>
<H1>Overview</H1>
<A HREF="Overview.htm#UsingtheMenus">Using the Menus</A>
[...]
якорь в : обзор.НТМ
[...]
<A NAME="UsingtheMenus" </A>
<P><STRONG>Using the Menus and Toolbars</STRONG>
[...]
если кто-то хочет попробовать.
здесь больше информации и testprogram:
Запустить Project1.exe и выберите без :
Группы1.pas / the команда
procedure TForm1.Button2Click(Sender: TObject);
begin
HtmlHelp(0,hpPath+'::/Overview.htm#UsingtheMenus>main',HH_DISPLAY_TOPIC,DWORD(nil));
end;
- нажать на кнопку
Overview.htm#UsingtheMenus
Результат:
открывается файл справки и overview.htm
появляется. Это было прыгнул на якорь.
загрузить исходный Проект1.exe D2010 и XE2.
Загрузить исходный образец.проекта htmlhelp CHM-файл.
теперь давайте проверим другие 2 кнопки
procedure TForm1.HelpKeywordClick(Sender: TObject);
begin
Application.HelpKeyword('UsingtheMenus');
end;
procedure TForm1.HelpContextClick(Sender: TObject);
begin
Application.HelpContext(IDH_UsingtheMenus);
end;
- Нажмите кнопку
HelpKeyword('UsingtheMenus')
Результат:
открывается файл справки и FirstTopic.htm
появляется. Текст UsingtheMenus
вставляется в поле поиска. не прыгать на якорь!
- Нажмите кнопку
HelpContext(IDH_UsingtheMenus)')
тот же результат, за исключением пустого поля поиска.
в последние 2 клика демонстрируют здесь:
Есть нет секретных идентификаторов или ключевых слов в файле HelpFile2\sample.chm доступно.
теперь мы изменим файл справки так что кроме Overview.htm#UsingtheMenus
два других метода приводят к успеху.
- закройте проект приложения.exe' Выполнить '.снова exe.
- убедитесь, что
with
выбран.
теперь мы используем "образец.chm " в папке HelpFile\
со следующими настройками.
образец.h
#define IDH_Creating_Projects_and_Topics 1005
#define IDH_Overview 1003
#define IDH_UsingtheMenus 1009
образец.Али!--34-->
IDH_Overview=Overview.htm
IDH_welcom=FirstTopic.htm
IDH_UsingtheMenus=Overview.htm#UsingtheMenus
образец.hcc
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<HTML>
[...]
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Using the Menus">
<param name="Local" value="Overview.htm#UsingtheMenus">
</OBJECT>
[...]
</HTML>
образец.hhk
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<HTML>
[...]
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Using the Menus">
<param name="Name" value="Using the Menus">
<param name="Local" value="Overview.htm#UsingtheMenus">
</OBJECT>
[...]
</HTML>
если мы компилируем " образец.chm", мы получаем сообщение об ошибке.
HHC3015: Warning: An alias has been created to "Overview.htm#UsingtheMenus" but the file does not exist.
это нормально, потому что файл "Общее представление.htm#UsingtheMenus " на самом деле не существует !
попробуем
не забывайте ,что "окно справки" после попытки каждого из следующих, чтобы закрыть снова. В противном случае вы не можете отслеживать различные состояния.
- Нажмите кнопку
HelpKeyword('UsingtheMenus')
Результат:
Откроется файл справки и FirstTopic.htm
появляется. Текст UsingtheMenus
вставляется в поле поиска. Текст UsingtheMenus
выбирается в списке
Если вы нажмете Show
Это было прыгнул на якорь.
- Нажмите кнопку
HelpContext(IDH_UsingtheMenus)')
Результат:
открывается файл справки и overview.htm
появляется. Это было прыгнул на якорь.
- нажать на кнопку
Overview.htm#UsingtheMenus
Результат:
тот же результат, что и выше.
Откроется файл справки и overview.htm
появляется. Это было прыгнул на якорь.
теперь мы можем использовать один из трех методов, чтобы перейти на нужную отметку.
если кто-то заинтересован в функционировании других кнопок, то читайте дальше и получить больше информации.
продолжение будет завтра.