Usando HTML HELP em suas aplicações Visual Basic


Vamos ver como criar um Help usando arquivos HTML e integrá-los com suas aplicações em Visual Basic de forma clara e objetiva. Se você não tem idéia de como vai ser a cara do seu HELP dê uma olha no HELP do Internet Explorer 4.0 , gostou ?? Pois bem, o seu vair ser igual...

O que você vai precisar para começar:

Bem contando que tudo já esta pronto , os arquivos HTM e o HTML Help WorkShop instalado, podemos começar.

Eu vou mostrar como criar o HELP usando como exemplo o HELP do Controle Financeiro Pessoal . Assim crie um diretório para guardar os seus arquivos HTML e os arquivos do HTML HELP que serão gerados mais tarde.

Para você ter um idéia os tipos de arquivos usados no HTML HELP são:

Extensão do Arquivo Tipo do Arquivo
HHP Projeto do HELP
HHC Tabela de conteúdo
HHK Indice
CHM Help Compilado
HTM Os arquivos HTM
H Arquivo de Cabeçalho.

Eu criei um diretório chamado financa no drive C: C:\FINANCA e nele eu guardei todos os arquivos HTM que eu vou usar.

Arquivos Htm usados para montar o HTML HELP

Agora inicie o HTML Help Workshop e escolha File|New , na janela de diálogo a seguir selecione a opção Project e clique OK. (Veja tela abaixo)

O Wizard para novo projeto é iniciado, agora você segue os seguintes passos para as próximas telas do Wizard:

Tela 1 - Clique em avançar.

Tela 2 - Informe o nome do diretório e o nome do seu projeto. Eu usei financa\financa.

Tela 3 - Como você já criou os seus arquivos selecione a opção HTML files(.htm)

Tela 4 - Clique no botão ADD e no diretório onde estão os seus arquivos HTML , selecione todos e clique em Abrir. Todos os seus arquivos deverão ser incluídos na janela, como abaixo:

Tela 5 - Clique em concluir e o Wizard será encerrado , voltando para a janela do seu projeto , agora já em andamento.(Ver abaixo)

A seguir clique na aba Contents, Selecione a opção Create a New Contents File e clique em OK .

Informe a seguir o nome da tabela de conteúdo, Eu usei o nome Conteudo.(Veja abaixo).Clique em Salvar.

A janela de Conteúdo surge aberta , e agora você pode usar os botões Insert Heading e Insert Page para inserir os seus arquivos HTM criados anteriormente.

Clique no botão para inserir um página , no quadro a seguir informe o nome que quer dar a página , clique no botão ADD e selecione o arquivo htm que você incluiu no projeto que esteja relacionado com este assunto.

Clique no botão OK e repita o processo para cada assunto do seu HELP , relacionando a seus arquivos HTML criados. De forma que no final devemos ter algo como a figura abaixo:

A seguir clique na aba Index e selecione a opção Create a New Index File e a seguir no botão OK, salvando o arquivo com o nome de indice (eu usei este nome).

A Janela de indice é aberta e nela você pode inserir as palavras chaves e relacioná-las com seus arquivos HTM criados de , como mostrado abaixo:

Repita a operação para cada palavra chave que você quiser incluir e relacionando-a com seus arquivos HTM criados de forma que no final você deverá ter algo como:

Clique na aba Project novamente e vamos definir a aparência da nossa janela de HELP. Clique no ícone : Add/Modify Windows Definitions e informe o nome de sua janela , eu usei meuhelp, a seguir configure-a a vontade, veja as opções na tela abaixo:

Agora vamos configurar o HTML Help para podermos usar Help sensível ao contexto, para isso clique no ícone: HTML Help API Information , a aba MAP e aberta e você deve incluir o nome do arquivo de cabeçalho. Este arquivo você deve criar com um editor DOS ou com o bloco de notas , ele tem a extensão H, eu usei o nome financa.h , o seu conteúdo deve relacionar um número a cada arquivo HTM que você criou assim no nosso caso obtivemos algo como:

A seguir clique na aba ALIAS e relacione cada arquivo usado no arquivo de cabeçalho com o seu arquivo HTM , veja abaixo:

Ao terminar voltaremos a janela de projeto do sistema para finalmente compilar nosso HTML HELP clicando no ícone : Save All Files e Compile

Durante a compilação temos na janela a direita a informação do status e dos erros que ocorrem. Dando tudo certo teremos no final a tela como abaixo:

E pronto , nosso Help já esta gerado , com o nome de financa.chm , e preparado para ser usado. Agora falta ajustar o código no Visual Basic para utilizar o HTML Help , para isto usaremos uma chamada a API e criaremos uma classe para tirar melhor proveito.

A API para usar mostrar os arquivos gerados faz parte do controle hhctrl.ocx , criaremos então uma classe com a HTMLHelp API no projeto para realizar a tarefa.

Crie uma classe é de um nome a ela, eu a chamei de vbhelp, a seguir entre com o seguinte código na seçao General Declarations:

'declarações e rotinas usadas pela classe vbhelp
Option Explicit

'// Constant declarations
Private Const HH_DISPLAY_TOPIC = &H0
Private Const HH_HELP_CONTEXT = &HF

'// API declaration
Private Declare Function HtmlHelp Lib "hhctrl.ocx" Alias "HtmlHelpA" _
(ByVal hwndCaller As Long, ByVal pszFile As String, _
ByVal uCommand As Long, ByVal dwData As Long) As Long

A classe que usaremos possui um método - o método Show - criaremos o código para o método . ver abaixo

Public Sub Show(NewFile As String, Optional WindowPane As String, Optional ContextID)

Dim strfile As String

strfile = NewFile

If Len(WindowPane) Then
strfile = Trim(strfile) & ">" & Trim(WindowPane)
End If

If IsMissing(ContextID) Then
Call HtmlHelp(0, strfile, HH_DISPLAY_TOPIC, ByVal 0&)
Else
Call HtmlHelp(0, strfile, HH_HELP_CONTEXT, ContextID)
End If


End Sub

No método podemos ver que o primeiro argumento , NewFile, é o nome do arquivo que pode ser arquivos HTM ou o arquivo compilado com Microsoft HTMLHelp Workshop com extensão CHM. O segundo argumento, Windowpane, é opcional e as definições da janela que usamos ao gerar o Help compilado. O terceiro argumento , ContextID , também opcional , fornece a identificação a ser usada para o Help sensível ao contexto.

Vejamos agora como usar a classe para chamar o HELP criado:

Para chamar o help de sua aplicação , você pode usar o código abaixo em um botão de comando. Ele faz uma chamada ao método Show da classe que criamos:

Dim strfile As String
Dim objHelp As vbhelp
Set objHelp = New vbhelp
strfile = "c:\financa\financa.chm"
Call objHelp.Show(strfile, "meuhelp")
Set objHelp = Nothing

Se quiser usar Help sensível ao contexto vai precisar referenciar a identificação do módulo que deseja chamar, assim para chamar o Help do módulo cadastro devemos fazer assim:

'chama help do contexto
Dim strfile As String
Dim objHelp As vbhelp
Set objHelp = New vbhelp
strfile = pathelp


Call objHelp.Show(strfile, "meuhelp", 10003) 'O número 10003 está relacionado com o arquivo cadastro.htm

Set objHelp = Nothing

Espero que o HTML HELP aqui descrito te ajude !!

referência:

Integrating HTML Help into your applications, PRAMODA, Sant S. , Visual Basic On-Line, 1999


retorna