📄 delphi程序与chm帮助关联的简单实现1.htm
字号:
<TR>
<TD>
<DIV align=center><FONT
size=3><STRONG>Delphi程序与Chm帮助关联的简单实现</STRONG></FONT></DIV></TD></TR></TBODY></TABLE></TD></TR>
<TR>
<TD style="BORDER-BOTTOM: #cccccc 1px solid" align=middle height=25>
<DIV align=right>浏览字号:【<A href="javascript:doZoom(16,19)">大</A> <A
href="javascript:doZoom(14,17)">中</A> <A
href="javascript:doZoom(12,15)">小</A>】【<A
href="http://www.7880.com/Print.php?PID=3990f040">打印</A>】【<A
href="javascript:window.close()">关闭窗口</A>】 </DIV></TD></TR>
<TR>
<TD vAlign=top align=middle height=80><FONT
color=#999999>日期:2004-08-19 人气:
<SCRIPT language=javascript
src="Delphi程序与Chm帮助关联的简单实现1.files/Read.php"></SCRIPT>
出处:csdn 作者: kelvinsdu</FONT><BR>
<TABLE borderColor=#ffffff cellSpacing=1 cellPadding=0 width=468
align=center border=0>
<TBODY>
<TR>
<TD>
<SCRIPT language=javascript
src="Delphi程序与Chm帮助关联的简单实现1.files/Banner_4.Js"></SCRIPT>
</TD></TR></TBODY></TABLE></TD></TR>
<TR>
<TD class=article id=Zoom>
<DIV align=center>Delphi程序与Chm帮助关联的简单实现</DIV>
<DIV align=center> </DIV>
<DIV align=center> 作者:李新 <A
href="mailto:kelvinsdu@sina.com">kelvinsdu@sina.com</A>
QQ:1348513</DIV>
<DIV align=center> </DIV>
<DIV
align=left>Chm格式的帮助是从windows98以后才出现的新的格式,与.hlp格式相比,具有更简单的编辑方式、更丰富的画面。它是通过Chm制作工具对网页文件进行编译得到的,所以理论上你可以把帮助文件做的和网页一样漂亮。</DIV>
<DIV align=left> </DIV>
<DIV
align=left>最简单的制作方法:先用FronPage制作帮助文件,然后用HTML Help Workshop编译就可以得到*.chm的帮助文件了。HTML Help Workshop可以到微软的网站上去下载。</DIV>
<DIV align=left> </DIV>
<DIV
align=left>应用程序中的帮助可分为上下文关联和非关联两种。上下文关联,是指用户按F1键后,出现与当前焦点对象(如窗体、文本框、下拉列表框)相关的帮助画面;不同对象,出现的帮助不同。非关联帮助,是指在程序任何位置按F1键后,出现同一帮助画面。下面就这两种方式,谈谈在Delphi中的简单实现方法。</DIV>
<DIV align=left> </DIV>
<DIV align=left>一、非关联的chm帮助</DIV>
<DIV align=left>在Delphi中,你可以通过ShellExecute函数直接调用chm帮助文件,具体如下:</DIV>
<DIV align=left>uses shellapi<BR>.......</DIV>
<DIV align=left>var HWndHelp:Hwnd;</DIV>
<DIV align=left> i:integer;</DIV>
<DIV align=left>begin</DIV>
<DIV align=left> //检查帮助窗口是否已经存在</DIV>
<DIV align=left>
HWndHelp:=FindWindow(nil,conHelpTitle);</DIV>
<DIV align=left> if HwndHelp<>0 then //
如存在则关闭</DIV>
<DIV align=left>
SendMessage(HwndHelp,WM_CLOSE,0,0);</DIV>
<DIV align=left> i:=ShellExecute(handle,
'open',Pchar(strCurExePath+'\help.chm''),nil, nil,
sw_ShowNormal);</DIV>
<DIV align=left> if i<>42 then</DIV>
<DIV align=left> Showmessage('
help.chm 帮助文件损坏!');</DIV>
<DIV align=left>end; </DIV>
<DIV align=left> </DIV>
<DIV align=left>二、上下文关联的chm帮助</DIV>
<DIV align=left>
在Delphi中实现上下文关联的chm帮助,可以调用Windows系统目录System32下的HHCTRL.OCX控件中的HtmlHelpA函数实现。 需要以下几个步骤:</DIV>
<DIV align=left> </DIV>
<DIV align=left>1 设置相关控件的HelpContext属性。</DIV>
<DIV align=left> 例,主窗体frmMain::10100 ,其中的文本框 edtInput:10101
</DIV>
<DIV align=left>对话框dlgReport:10200 ,其中的组合列表框
cbReportEdit:10201</DIV>
<DIV align=left> </DIV>
<DIV align=left>2 声明HtmlHelpA函数</DIV>
<DIV align=left> </DIV>
<DIV align=left>function HtmlHelpA (hwndcaller:Longint;
lpHelpFile:string; wCommand:Longint;dwData:string): HWND;stdcall;
external 'hhctrl.ocx'</DIV>
<DIV align=left> </DIV>
<DIV align=left>3 F1按键响应</DIV>
<DIV align=left> </DIV>
<DIV align=left>//公用函数ShowChmHelp显示不同帮助画面。</DIV>
<DIV align=left>procedure ShowChmHelp(sTopic:string); </DIV>
<DIV align=left>var i:integer;</DIV>
<DIV align=left>begin</DIV>
<DIV align=left>
i:=HtmlHelpA(Application.Handle,Pchar(ExePath+'\help.chm’),HH_DISPLAY_TOPIC,sTopic);</DIV>
<DIV align=left> if i=0 then</DIV>
<DIV align=left> begin</DIV>
<DIV align=left> Showmessage('
help.chm 帮助文件损坏!');</DIV>
<DIV align=left> exit;</DIV>
<DIV align=left> end;</DIV>
<DIV align=left>end;</DIV>
<DIV align=left>….</DIV>
<DIV align=left>function TfrmMain.FormHelp(Command: Word; Data:
Integer; var CallHelp: Boolean): Boolean;</DIV>
<DIV align=left>begin</DIV>
<DIV align=left> case Data of</DIV>
<DIV align=left> 10100:
ShowChmHelp(frmMain.htm);</DIV>
<DIV align=left> 10101:
ShowChmHelp('edtInput.htm');</DIV>
<DIV align=left>…</DIV>
<DIV align=left> else
ShowChmHelp(default.htm');</DIV>
<DIV align=left> end;</DIV>
<DIV align=left>end;</DIV>
<DIV align=left>function TdlgReport.FormHelp(Command: Word; Data:
Integer; var CallHelp: Boolean): Boolean;</DIV>
<DIV align=left>begin</DIV>
<DIV align=left> case Data of</DIV>
<DIV align=left> 10200:
ShowChmHelp('dlgReport.htm');</DIV>
<DIV align=left>10201: ShowChmHelp(cbReportEdit.htm');</DIV>
<DIV align=left>…</DIV>
<DIV align=left> else
ShowChmHelp(default.htm');</DIV>
<DIV align=left> end;</DIV>
<DIV align=left>end;</DIV>
<CENTER></CENTER></TD></TR>
<TR>
<TD></TD></TR>
<TR>
<TD bgColor=#cccccc height=1></TD></TR>
<TR>
<TD><FONT color=#339900><B>相关资讯:</B></FONT>
<LI><A
href="http://www.7880.com/Info/Article-1f835260.html">Delphi应用程序与Chm帮助关联的简单实现(源代码)</A></LI></TD></TR>
<TR>
<TD></TD></TR>
<TR>
<TD></TD></TR></TBODY></TABLE></TD>
<TD style="BORDER-LEFT: #cccccc 1px solid" width=184>
<TABLE style="BORDER-TOP: #cccccc 1px solid" cellSpacing=1 cellPadding=2
width="100%" border=0>
<TBODY>
<TR>
<TD style="BORDER-BOTTOM: #cccccc 1px solid" align=middle
bgColor=#009900 height=22><FONT color=#ffffff><IMG height=13
src="Delphi程序与Chm帮助关联的简单实现1.files/C_1.gif" width=13 align=absMiddle>
推荐列表</FONT></TD></TR>
<TR>
<TD align=left>
<SCRIPT language=javascript
src="Delphi程序与Chm帮助关联的简单实现1.files/CommendList.Js"></SCRIPT>
</TD></TR></TBODY></TABLE>
<TABLE style="TABLE-LAYOUT: fixed; WORD-WRAP: break-word" cellSpacing=1
cellPadding=2 width="100%" border=0>
<TBODY>
<TR>
<TD style="BORDER-BOTTOM: #cccccc 1px solid" align=middle
bgColor=#009900 height=22><FONT color=#ffffff><IMG height=13
src="Delphi程序与Chm帮助关联的简单实现1.files/C_1.gif" width=13 align=absMiddle>
<FONT color=#ffffff><FONT color=#ffffff>热点资讯
</FONT></FONT></FONT></TD></TR>
<TR>
<TD align=left>·<A
href="http://www.7880.com/Info/Article-eeb4660.html">Delphi控件的使用经验</A><BR>·<A
href="http://www.7880.com/Info/Article-13e0ce60.html">用Word做Delphi报表输出工具</A><BR>·<A
href="http://www.7880.com/Info/Article-19be4560.html">Delphi与Excel的亲密接触</A><BR>·<A
href="http://www.7880.com/Info/Article-13e25500.html">在DELPHI程序中使用ADO对象存取ODBC数据库</A><BR>·<A
href="http://www.7880.com/Info/Article-1b7bd3e0.html">Delphi数据库编程教程</A><BR>·<A
href="http://www.7880.com/Info/Article-28170fc0.html">delphi7从入门到精通之(一)</A><BR>·<A
href="http://www.7880.com/Info/Article-13e6e8e0.html">Delphi中
OnDrawCell的使用技巧</A><BR>·<A
href="http://www.7880.com/Info/Article-f5db740.html">解析IP地址为主机域名。</A><BR>·<A
href="http://www.7880.com/Info/Article-127a3980.html">DELPHI存取JPEG文件到SQL
Server数据库(续文)</A><BR>·<A
href="http://www.7880.com/Info/Article-180b6540.html">Delphi报表控件----SReport3强大易用稳定与最终用户交互良好(新)</A><BR>·<A
href="http://www.7880.com/Info/Article-1937fe60.html">一个计算器的代码,欢迎大家点评</A><BR>·<A
href="http://www.7880.com/Info/Article-1b8faa00.html">Delphi数据库编程教程(九)</A><BR>·<A
href="http://www.7880.com/Info/Article-1329b360.html">远程控制篇:通过IP地址得到机器名</A><BR>·<A
href="http://www.7880.com/Info/Article-f5c30a0.html">将某一主机域名解析为IP地址。</A><BR>·<A
href="http://www.7880.com/Info/Article-ef90200.html">wap!delphi能做到!――
应用于移动电话的WML(Wireless Markup Language)开发</A><BR>·<A
href="http://www.7880.com/Info/Article-13e86f80.html">dephi
程序输入法根据用户的爱好自动切换的简便解决办法</A><BR>·<A
href="http://www.7880.com/Info/Article-13b307a0.html">从Internet时间服务器获取标准格林尼治时间</A><BR>·<A
href="http://www.7880.com/Info/Article-13dab3e0.html">用Delphi获取当前系统时间</A><BR>·<A
href="http://www.7880.com/Info/Article-20e6da00.html">利用Delphi编写Socket通信程序</A><BR>·<A
href="http://www.7880.com/Info/Article-281ba3a0.html">delphi7从入门到精通之四</A><BR></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE>
<TABLE style="BORDER-RIGHT: #cccccc 1px solid; BORDER-LEFT: #cccccc 1px solid"
height=20 cellSpacing=0 cellPadding=0 width=760 align=center border=0>
<TBODY>
<TR bgColor=#009900>
<TD align=right height=25><A
href="http://www.7880.com/Site.php?About"><FONT
color=#ffffff>关于我们</FONT></A> <FONT color=#ffffff>|</FONT> <A
style="CURSOR: help" href="http://www.7880.com/Site.php?Help" h><FONT
color=#ffffff>帮助(?)</FONT></A> <FONT color=#ffffff>|</FONT> <A
href="http://www.7880.com/Site.php?Copyright"><FONT
color=#ffffff>版权声明</FONT></A> <FONT color=#ffffff>| </FONT><A
href="http://www.7880.com/Site.php?Link"><FONT
color=#ffffff>友情链接</FONT></A> <FONT color=#ffffff>|</FONT> <A
href="http://www.7880.com/SendMail.php?Go=Webmaster::1"
target=_blank><FONT color=#ffffff>联系我们</FONT></A>
</TD></TR></TBODY></TABLE>
<TABLE
style="BORDER-RIGHT: #cccccc 1px solid; BORDER-LEFT: #cccccc 1px solid; BORDER-BOTTOM: #cccccc 1px solid"
height=18 cellSpacing=0 cellPadding=0 width=760 align=center border=0>
<TBODY>
<TR>
<TD vAlign=center width="69%" height=19><FONT
face="Verdana, Arial, Helvetica, sans-serif">Copyright 2004-2008
www.7880.com Inc. All rights reserved.</FONT></TD>
<TD align=right width="31%" height=19>
<SCRIPT language=JavaScript src="Delphi程序与Chm帮助关联的简单实现1.files/click.htm"
type=text/javascript></SCRIPT>
</TD></TR></TBODY></TABLE></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -