Chamar um HTMLHelp (.chm)
No formulário principal, logo após o primeiro uses da seção Interface, defina :
function HtmlHelp(hwndCaller: THandle; pszFile: PChar; uCommand: cardinal; dwData: longint): THandle; stdcall; external 'hhctrl.ocx' name 'HtmlHelpA' ;
No OnCreate do formulário principal faça o seguinte :
Application.OnMessage := ChamaHelp ;
Agora é só usar essa procedure
procedure TfrmPrincipal.ChamaHelp(var Msg: TMsg; var Handled: Boolean);
begin
if (Screen.ActiveForm.ClassName = 'TMessageForm') = false then
if Msg.message = WM_KEYDOWN then
if Msg.wParam = VK_F1 then
HtmlHelp(Screen.ActiveForm.Handle, PChar(Arquivo_de_Help.chm), $F, Screen.ActiveForm.HelpContext ) ;
end;
Pronto. Ao apertar a tecla F1 em qualquer parte do projeto o help será chamado, desde que o no formulário ativo, onde for pressionada o F1 a propriedade HelpContext esteja preenchida.
Importante: Não coloque o nome do arquivo de help no Project>Options>HelpFile, nem no Application.HelpFile, pois ao pressionar F1 a aplicação tentará carregar o Htmlhelp (.CHM) que estiver lá , gerando uma exception pois o formato CHM não é suportado pelo Delphi .
Atenciosamente,
Fábio Macedo Garcia
Gerente de Desenvolvimento
fabio@copaninfo.com.br
fabiomaced@hotmail.com