引用:
原帖由 duanlian 于 2007-12-19 08:42 发表 
我的意思是一款通用产品,某些操作不完全符合Windows的既有习惯,这个可以认为是存在BUG吗?
再有:
在VB中只要设置了App.HelpFile="a.chm",则按F1键,就自动弹出联机帮助,但在Delphi中设置Application.HelpFile ...
复制内容到剪贴板
代码:
type
TfrmMain = class(TForm)
...
function DoAppHelp(Command: Word; Data: Integer; var CallHelp: Boolean): Boolean;
...
end;
...
Application.OnHelp := DoAppHelp;
...
function TfrmMain.DoAppHelp(Command: Word; Data: Integer; var CallHelp: Boolean): Boolean;
begin
if Command = HELP_CONTEXT then
begin
// 这个是上下文相关的帮助,可以打开指定的页面,具体帮助怎么制作,我这里就不说了。。。
CallHelp := False;
if (Application.HelpFile <> '') and FileExists(Application.HelpFile) then
begin
HtmlHelp(GetDesktopWindow, PAnsiChar(Application.HelpFile), HH_HELP_CONTEXT, Data);
HtmlHelp(GetDesktopWindow, PAnsiChar(Application.HelpFile), HH_SYNC, Data);
Result := True;
Exit;
end;
end;
Result := False;
end;如果只要简单的打开chm文件,如下代码即可
复制内容到剪贴板
代码:
HtmlHelp(GetDesktopWindow, PAnsiChar(Application.HelpFile), $0000, 0);
// 也可用app的handle
HtmlHelp(Application.Handle, PAnsiChar(Application.HelpFile), $0000, 0);HtmlHelp这个API在Delphi 7中没有封装,Delphi 2006中已经封装了。。。