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