有关帮助文件
想做一个帮助文件,用户使用的时候,在某一个窗口中按“F1”,就调出该帮助文件,并且定位在与该窗口的功能相关的帮助内容那里,请问怎么实现呢? 问题点数:20、回复次数:27Top
1 楼apple_8180(十豆三)回复于 2006-03-15 11:07:18 得分 0
转帖(未测试)
----------------------
VFP中应用帮助文件,如何在任何表单中实时启动帮助文件中的某一条?其ID如何得到?
在VFP中,我已完成了HELP的文件编译与运用,但不能有任一表单中调用帮助文件中的某一帮助条款。需实现的功能:
如一表单A中有一command按钮,当光标走到command按钮时会自动显示“这是什么?”当点击“这是什么?”时,则启动HELP的相应帮助条款!
各位高手怎么实现这一功能呢?
*----------------------------
如果你采用id方式,你需要:
1、在help文件中知道相应帮助条目的id
2、在系统开始时,执行
set help on
set help to 文件名
3、当点击“这时什么”时,执行
help id 条目的id
如果不采用id方式,可以:
1、在系统开始时,执行
set help on
set help to 文件名
2、当点击“这时什么”时,执行
help 你希望显示的topic
Top
2 楼itzhiren(itzhiren)回复于 2006-03-15 11:38:30 得分 0
如果采用id方式,怎么才能知道帮助条目的id呢?我是用别的工具制作的帮助文件Top
3 楼apple_8180(十豆三)回复于 2006-03-15 11:45:02 得分 0
帮助文件制作工具中应该可以指定Top
4 楼itzhiren(itzhiren)回复于 2006-03-15 11:45:58 得分 0
还有,用按钮可以实现这个了,可是如何在窗口中按F1来实现呢?Top
5 楼itzhiren(itzhiren)回复于 2006-03-15 11:57:02 得分 0
帮助文件制作工具中没有指定id的功能呀Top
6 楼TERRYYRRET(命运)回复于 2006-03-15 12:00:49 得分 0
帮助文件制作工具有很多,从网上搜一下,如quick chm
使用很简单,就是一个文件树 ,添加进去后编译就可以了
然后再按十豆三所说就行了Top
7 楼apple_8180(十豆三)回复于 2006-03-15 12:04:34 得分 10
表单的KeyPreview设为.T.
表单的KeyPress事件:
LPARAMETERS nKeyCode, nShiftAltCtrl &&系统代码
IF nKeyCode=28
MESSAGEBOX('OK')
ENDIFTop
8 楼itzhiren(itzhiren)回复于 2006-03-15 12:19:02 得分 0
我用的就是powerchm,可是他没有设置id的地方呀Top
9 楼itzhiren(itzhiren)回复于 2006-03-15 12:37:22 得分 0
nKeyCode=28
这是哪一个键?好像不管用呀,按F1的时候,调出了帮助文件,但是没有定位:
LPARAMETERS nKeyCode, nShiftAltCtrl
IF nKeyCode=28
HELP 软件简介
ENDIF
以上是form的keypress事件代码,在load里面:
SET PATH TO E:\Visual FoxPro\帮助文件
SET HELP ON
SET HELP TO 软件使用手册.chmTop
10 楼itzhiren(itzhiren)回复于 2006-03-15 12:38:56 得分 0
F1的代码应该是多少呢?Top
11 楼apple_8180(十豆三)回复于 2006-03-15 12:41:44 得分 0
必须编译后运行,否则VFP先接收F1Top
12 楼apple_8180(十豆三)回复于 2006-03-15 12:44:02 得分 0
F1 就是28Top
13 楼itzhiren(itzhiren)回复于 2006-03-15 13:08:45 得分 0
编译以后运行也不对呀,只打开了帮助文件,没有定位Top
14 楼itzhiren(itzhiren)回复于 2006-03-15 13:17:27 得分 0
改成以下,根本就没有弹出窗口,好像还是先接收了F1呀
LPARAMETERS nKeyCode, nShiftAltCtrl
=MESSAGEBOX(nkeycode,nkeycode,nShiftAltCtrl)
IF nKeyCode=28
HELP 软件简介
ENDIF
Top
15 楼itzhiren(itzhiren)回复于 2006-03-15 13:23:36 得分 0
怎么知道F1是28的呢?Top
16 楼apple_8180(十豆三)回复于 2006-03-15 13:26:54 得分 0
?INKEY(0)
然后再按F1
或查看帮助中的INKEYTop
17 楼itzhiren(itzhiren)回复于 2006-03-15 13:43:32 得分 0
LPARAMETERS nKeyCode, nShiftAltCtrl
=MESSAGEBOX(nkeycode,nkeycode,nShiftAltCtrl)
IF nKeyCode=28
HELP 软件简介
ENDIF
以上代码,为什么在运行的时候,按F1键,就没有提示窗口,直接调用了帮助文件,并且没有定位呢?Top
18 楼itzhiren(itzhiren)回复于 2006-03-15 13:55:55 得分 0
好像还是先响应了F1键呀,怎么办呢?Top
19 楼apple_8180(十豆三)回复于 2006-03-15 14:07:59 得分 0
=MESSAGEBOX(nkeycode,nkeycode,nShiftAltCtrl)
这句会报错。Top
20 楼itzhiren(itzhiren)回复于 2006-03-15 14:21:41 得分 0
为什么?那应该怎么调用呀?好像还是先响应了F1键呀,我把
=MESSAGEBOX(nkeycode,nkeycode,nShiftAltCtrl)去掉也不行呀,只打开了帮助文件,没有定位
Top
21 楼apple_8180(十豆三)回复于 2006-03-15 14:31:36 得分 10
那也应该先执行这句的。
我是这样测试的,你试试:
表单的KeyPreview设为.T.
表单的KeyPress事件:
LPARAMETERS nKeyCode, nShiftAltCtrl &&系统代码
MESSAGEBOX(str(nkeycode)+'-'+str(nkeycode)+'-'+str(nShiftAltCtrl))
IF nKeyCode=28
MESSAGEBOX('OK')
ENDIF
Top
22 楼itzhiren(itzhiren)回复于 2006-03-15 14:45:29 得分 0
LPARAMETERS nKeyCode, nShiftAltCtrl &&系统代码
MESSAGEBOX(str(nkeycode)+'-'+str(nkeycode)+'-'+str(nShiftAltCtrl))
IF nKeyCode=28
MESSAGEBOX('OK')
ENDIF
============================
这样测是没有错,可是如果要调出帮助文件,并定位,就做不到了,只能调出帮助文件,不能定位Top
23 楼itzhiren(itzhiren)回复于 2006-03-15 14:50:24 得分 0
但是在表单上面加一个按钮,按钮的click事件:
HELP 软件简介
就可以实现定位,说明在表单中按F1键,根本就没有触发表单的keypress事件Top
24 楼apple_8180(十豆三)回复于 2006-03-15 14:53:30 得分 0
你的程序是怎么运行的,是有运行库?还是快捷方式是这样:‘C:\Vfp\Vfp6.exe -t C:\TEST.exe’Top
25 楼itzhiren(itzhiren)回复于 2006-03-15 14:58:07 得分 0
没有呀,我就是把它编译以后运行的呀,不是快捷方式Top
26 楼apple_8180(十豆三)回复于 2006-03-15 15:00:42 得分 0
你QQ 多少,这样太麻烦了、Top
27 楼itzhiren(itzhiren)回复于 2006-03-15 15:06:17 得分 0
3835738Top




