CHM でのアンカーへのジャンプDelphi2010 で
テスト済み - DelphiXE2 - Windows XP
Delphi で chm ファイル(コンパイル済み HTML ヘルプ)のアンカーにジャンプする方法。
はい、HtmlHelp() コマンドでアンカーにジャンプできます。
<a name="my_anchor"></a>
HtmlHelp(0,hpPath+'::/Overview.htm#UsingtheMenus>main',HH_DISPLAY_TOPIC,DWORD(nil));
のリンク: Overview.htm
- 注: このリンクは、Delphi プログラムを介してアンカーにジャンプする必要はありません
(テスト用のみ)。
概要.htm
<!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>
[...]
アンカー: Overview.htm
[...]
<A NAME="UsingtheMenus" </A>
<P><STRONG>Using the Menus and Toolbars</STRONG>
[...]
やってみたい方はどうぞ。
詳細情報とテストプログラムは次のとおりです。
Project1.exe を実行し、なしで選択します。
Unit1.pas / コマンド
procedure TForm1.Button2Click(Sender: TObject);
begin
HtmlHelp(0,hpPath+'::/Overview.htm#UsingtheMenus>main',HH_DISPLAY_TOPIC,DWORD(nil));
end;
- ボタンをクリック
Overview.htm#UsingtheMenus
結果:
ヘルプ ファイルが開き、 が表示されoverview.htm
ます。アンカーにジャンプしました。
ソース Project1.exe D2010 および XE2 をダウンロードします。
ソース sample.chm HtmlHelp プロジェクトをダウンロードします。
ダウンロード
次に、他の 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 ファイルには秘密の ID またはキーワード
はありません。
ここで、他の 2 つの方法に加えてOverview.htm#UsingtheMenus
、成功につながるようにヘルプ ファイルを変更します。
- アプリ「Project.exe」を閉じます
- 「Project.exe」を再度実行します。
- が選択されていることを確認し
with
ます。
ここでは、HelpFile\ フォルダーにある "sample.chm" を
次の設定で使用します。
サンプル.h
#define IDH_Creating_Projects_and_Topics 1005
#define IDH_Overview 1003
#define IDH_UsingtheMenus 1009
sample.ali
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>
「sample.chm」をコンパイルすると、エラー メッセージが表示されます。
HHC3015: Warning: An alias has been created to "Overview.htm#UsingtheMenus" but the file does not exist.
ファイル「Overview.htm#UsingtheMenus」は実際には存在しないため、これは正常です。
試してみよう
以下の各操作を行った後、再度「ヘルプウィンドウ」を閉じることをお忘れなく。そうしないと、さまざまな状態を追跡できません。
- ボタンをクリック
HelpKeyword('UsingtheMenus')
結果:
ヘルプ ファイルが開き、 が表示されFirstTopic.htm
ます。テキストUsingtheMenus
が検索フィールドに挿入されます。リストボックスでテキストUsingtheMenus
を選択して
クリックすると アンカーShow
にジャンプしました。
- ボタンをクリック
HelpContext(IDH_UsingtheMenus)')
結果:
ヘルプ ファイルが開き、 が表示されoverview.htm
ます。アンカーにジャンプしました。
- ボタンをクリック
Overview.htm#UsingtheMenus
結果:
上記と同じ結果です。
ヘルプ ファイルが開き、 が表示されoverview.htm
ます。アンカーにジャンプしました。
これで、3 つの方法のいずれかを使用して目的のマークにジャンプできます。
他のボタンの機能に興味がある場合は、読み進めて詳細情報を入手してください。
明日につづく。