请教各位高手,怎么实现调用CHM帮助的时候,能定位到与当前运行程序功能模块对应的帮助页面,解决立即给分

jockywin 2004-08-07 07:29:58
请教各位高手,怎么实现调用CHM帮助的时候,能定位到与当前运行程序功能模块对应的帮助页面,解决立即给分
...全文
240 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
billywolf 2004-09-15
  • 打赏
  • 举报
回复
学习
jockywin 2004-09-06
  • 打赏
  • 举报
回复
好了,现在结贴
smiler007 2004-08-29
  • 打赏
  • 举报
回复
天乐...OK
ljpxyxc 2004-08-29
  • 打赏
  • 举报
回复
乐天说的对!
jockywin 2004-08-29
  • 打赏
  • 举报
回复
为什么会有这样的连接啊?125/1255808.htm
是做CHM的时候将网页以数字命名吗
crossbow 2004-08-08
  • 打赏
  • 举报
回复
Jedi上面的HTMLHELP都放了几年了
jockywin 2004-08-08
  • 打赏
  • 举报
回复
”Jedi上面的HTMLHELP都放了几年了“
Jedi指的是什么啊,请指教,谢谢
jockywin 2004-08-08
  • 打赏
  • 举报
回复
谢谢各位,我试一下,OK后马上给分
kasteboy 2004-08-08
  • 打赏
  • 举报
回复
HtmlHelpA(GetDesktopWindow(), 'E:\help.chm::/aa.htm>main', 1, '');
行路人怎么样 2004-08-08
  • 打赏
  • 举报
回复
WinExec('hh.exe mk:@MSITStore:D:\Program%20Files\dfw\dfwbbs.chm::/125/1255808.htm', SW_SHOW);
在CHM的页面内容上按右键-属性可以看到字符串“mk:@MSITStore:D:\Program%20Files\dfw\dfwbbs.chm::/125/1255808.htm”

行路人怎么样 2004-08-08
  • 打赏
  • 举报
回复
定位到某个页面的方法我不是说了吗?
mk:@MSITStore:D:\Program%20Files\dfw\dfwbbs.chm::/125/1255808.htm
--这是文件名 --这是要定位到的页面

你可以设置Form.HelpKeyWord为要定位到的页面
在OnKeyDown事件中:
WinExec(PChar('hh.exe mk:@MSITStore:help.chm::/'+ Application.MainForm.HelpKeyWord), SW_SHOWMAXIMIZED);
orchidbing 2004-08-07
  • 打赏
  • 举报
回复
这有: http://dev.csdn.net/Develop/article/18/18116.shtm
上下文关联的chm帮助

在Delphi中实现上下文关联的chm帮助,可以调用Windows系统目录System32下的HHCTRL.OCX控件中的HtmlHelpA函数实现。 需要以下几个步骤:



1 设置相关控件的HelpContext属性。

例,主窗体frmMain::10100 ,其中的文本框 edtInput:10101

对话框dlgReport:10200 ,其中的组合列表框 cbReportEdit:10201



2 声明HtmlHelpA函数



function HtmlHelpA (hwndcaller:Longint; lpHelpFile:string; wCommand:Longint;dwData:string): HWND;stdcall; external 'hhctrl.ocx'



3 F1按键响应



//公用函数ShowChmHelp显示不同帮助画面。

procedure ShowChmHelp(sTopic:string);

var i:integer;

begin

i:=HtmlHelpA(Application.Handle,Pchar(ExePath+'\help.chm’),HH_DISPLAY_TOPIC,sTopic);

if i=0 then

begin

Showmessage(' help.chm 帮助文件损坏!');

exit;

end;

end;

….

function TfrmMain.FormHelp(Command: Word; Data: Integer; var CallHelp: Boolean): Boolean;

begin

case Data of

10100: ShowChmHelp(frmMain.htm);

10101: ShowChmHelp('edtInput.htm');



else ShowChmHelp(default.htm');

end;

end;

function TdlgReport.FormHelp(Command: Word; Data: Integer; var CallHelp: Boolean): Boolean;

begin

case Data of

10200: ShowChmHelp('dlgReport.htm');

10201: ShowChmHelp(cbReportEdit.htm');



else ShowChmHelp(default.htm');

end;

end;

这样,通过不同窗体的FormHelp事件,就可以实现帮助的关联。

jockywin 2004-08-07
  • 打赏
  • 举报
回复
请高手指教

5,939

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧