E-BOOK COM TWebBrowser

Nesta coluna nossa intenção não é ensinar ninguém a programar e muito menos lidar com ambiente de programação por objeto, e sim ajudar a encontrar soluções simples utilizando a poderosa ferramenta que é o Delphi.

O Delphi é um software de programação com muitas facilidades, uma delas (muito usada por mim) é utilizar as funções do Windows, como a de navegação por HTML, por exemplo, para criar pequenos softwares.

Recentemente criei um manual eletrônico para uma empresa, a missão era a seguinte: disponibilizar manuais de forma fácil e organizada para que os seus funcionários usassem os notebooks da empresa para lê-los e imprimi-los a qualquer momento, e ainda incluindo um sistema de procura.

O prazo era curto, os manuais já estavam digitalizados, mas havia um problema: como a empresa tem muitos vendedores a configuração era Windows 98 e só, não tinha qualquer outro produto, pois ficaria caro demais usar programas legalizados em todos os notebooks.

A solução foi a seguinte: primeiramente converti por dentro do Microsoft Word o manual em HTML fazendo páginas distintas por capítulo, ou seja, fiz trabalho de webdesigner. Criei um sistema de procura em Java Script por palavra chave.

Feito isto os funcionários poderiam “navegar” por dentro do Internet Explorer, mas o desejo era um programa personalizado e com um menu constante na tela, então criei um Browser só para aqueles arquivos, que eram lidos de dentro de um CD. Estamos falando em mais de 250Mb de arquivos entre textos e figuras.

Para isto usei um componente nativo do Delphi: o TWebBrowser, veja abaixo como ficaram as partes principais do programa com os comentários.

Busca do diretório: O GetExePath é uma function que, como o próprio nome sugere, é para pegar o path do executável a fim de buscar os arquivos no mesmo diretório, muito útil na execução em CD.

function GetExePath : String ;
var
Cdir : string;
begin
// Se a função retorna com zero, OCORREU UM ERRO
SetLength(Cdir,144);
if GetCurrentDirectory(144,Pchar(Cdir)) <> 0 then
begin
    SetLength(Cdir,Strlen(Pchar(Cdir)));
    result := Cdir;
end
else raise Exception.Create('ExePath não encontrado.');
end;

Criei um TreeView – contendo um índice dos capítulos. A variável barra é apenas para fazer a versão de HD, para isso atribuindo valor ‘/’ e para versão em CD o valor é nulo. O evento Change carrega na janela do WebBrowser o produto especificado pela escolha.

procedure TForm1.TreeView1Change(Sender: TObject; Node: TTreeNode);
begin
 case node.AbsoluteIndex of
 0 : WebBrowser1.Navigate (GetExePath + barra+'pdfs/produto01.htm');
 1 : WebBrowser1.Navigate (GetExePath + barra+'pdfs/produto02.htm');
 //(...)
 75 : WebBrowser1.Navigate (GetExePath + barra+'pdfs/produto75.htm');
 76 : WebBrowser1.Navigate (GetExePath + barra+'pdfs/produto76.htm');
end;
end;

Fazendo a procura – para fazer a procura o recurso é o mesmo da chamada de página, bastando apenas especificar o caminho da página que contém o Java Script, o único cuidado é que a rotina tem que mostrar o resultado e seus links direcionando para a mesma página do resultado.

procedure TForm1.Procurar1Click(Sender: TObject);
begin
WebBrowser1.Navigate (GetExePath +barra+'pdfs/procura.htm');
end;

Compatilhe esse artigo!

Leave a Reply

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

This site uses Akismet to reduce spam. Learn how your comment data is processed.