Usando o Mozilla em vez do IE

Por:

O componente do IE já vem configurado no Delphi quando ele é instalado, e alguns outros ambientes (como o Visual Basic) também vêm preparados com ele. Caso não venha, você deverá importar o controle Active-X do IE. E para quem vai usar o controle do Mozilla, também: deverá instalá-lo na interface do Delphi, para que possa ser usado pelos seus programas…

O controle Active-X do Gecko foi disponibilizado para facilitar o uso do “núcleo” do Mozilla em aplicações de terceiros (como as suas), sem ser preciso desenvolver um navegador do zero, e sem “depender” do IE. Com a vantagem que é open source, você tem mais liberdade para personalizá-lo ou modificá-lo (não que isso seja fácil, rs). Visando facilitar a compatibilidade com os programas que usam o controle Active-X do IE, o pessoal que trabalha no controle Active-X do Gecko trabalhou para o desenvolvimento de uma API não parecida, mas idêntica! O que isso significa? Significa que basta “colocar” o controle do Mozilla no seu programa, substituindo o do IE (ou já iniciando os novos projetos com ele). Os nomes de métodos, chamadas e parâmetros são os mesmos. No caso desse programinha, por exemplo, basta trocar o controle, excluir as referências ao componente do IE e dar ao controle do Mozilla o mesmo nome (no nosso exemplo, “web”), para que você não precise alterar as referências ao nome.

É bom saber que o controle a ser usado não é o Mozilla em si, nem o Firefox ou Netscape. É o “coração” deles, “portado” para que pudesse ser usado por outras aplicações, na forma então de um controle Active-X. Como disse no começo desse tutorial, um controle Active-X é como se fosse um programa, que roda dentro de outro programa.

Como todo controle Active-X, o do Mozilla deverá estar instalado no sistema dos usuários onde seu projeto for rodar. O instalador dele tem cerca de 5 MB, mas você pode também redistribuir os arquivos isolados, na mesma pasta da sua aplicação, registrando com o regsvr32 o arquivo “mozctlx.dll”. Calma, vamos por partes.

Instalando o controle Active-X do Mozilla

Baixe-o em:

www.iol.ie/~locka/mozilla/mozilla.htm

E rode o instalador no seu sistema, onde você vai desenvolver o programa. Nessa página há diversas informações sobre o controle do Mozilla, suas idéias, funcionamento e é possível fazer o download de um programinha de exemplo, também.

Rode o instalador como administrador, pois para que o arquivo “mozctlx.dll” seja registrado, é necessário privilégios de administrador (assim como será necessário aos usuários do seu programa).

Você precisará, antes de usá-lo pela primeira vez, importar o controle no seu ambiente de programação. Isso irá variar de ambiente para ambiente. No Delphi, clique no menu “Component > Import Active-X Control…”, e localize o item “MozillaControl …”. Veja:

fig17
Selecionado ele, clique em “Install” e siga as instruções do ambiente de programação, normalmente pedirão um local para salvar a unidade de código gerada para o controle em questão. É bom deixar o caminho padrão, normalmente, junto com os outros arquivos do ambiente.

Não se assuste se existirem muitos controles disponíveis, pois o Delphi (no caso) lista todos os controles disponíveis no seu sistema. Alguns você reconhecerá facilmente, como o do Windows Media Planger, o do próprio IE, etc. Muitos programas usam controles Active-X para compartilhar componentes e funções comuns, alguns são fechados, outros não…

Nota: se o controle Active-X não foi registrado, ele não será listado aí. Então, execute novamente o instalador, logado como administrador. Se você souber o arquivo certo a ser registrado, pode chamar o RegSvr32, assim:

regsvr32 “C:Arquivos de programasMozilla… mozctlx.dll”

Depois de instalado no sistema de desenvolvimento, bastará usá-lo! O controle do Mozilla, no Delphi, ficará por padrão na paleta de componentes “ActiveX” (note na imagem de tela anterior que você pode escolher outra antes da instalação, no campo “Palette page”).

fig18controle do Mozilla

Ele ficou sem ícone, pois foi um controle instalado depois, o Delphi simplesmente não tem como saber do que se trata, apenas que é um controle Active-X 😉 Você verá o nome dele (“MozillaBrowser”) ao passar o mouse sobre o mesmo.

Para iniciar novos programas usando ele, basta clicar nele e inserir no formulário, normal, assim como você fez com o do IE. Para trocar o do IE por ele, exclua primeiro o do IE (selecione o quadro branco, o componente “web” do nosso exemplo) e tecle Delete, no teclado. Insira o do Mozilla no espaço livre do formulário e ajuste a propriedade “Align” dele para “AlClient”, assim como você fez com o do IE anteriormente, para que ele seja ajustado automaticamente na janela. Selecione-o e altere a propriedade “Name”, deixando a mesma anterior, “web”, para que você não precise trocar as referências do nome no código, visto que o controle do Mozilla acabado de inserir teria o nome padrão “MozillaBrowser1”.

Nota: ao excluir um objeto, normalmente as referências aos códigos do objeto não são removidas, são “arquivos de inclusão”. Se você remover o controle do IE, após removê-lo, remova as referências à unidade de código “SHDocVw”, da cláusula Uses:

fig19
Normalmente não ocorrerá problema se você não remover. O que ocorrerá é que seu programa terá um pouco de código a mais, aumentando o tamanho dele, par um código inútil que não será usado, visto que você removeu o controle do IE.

Faltam poucos ajustes. Ao inserir controles Active-X, pode dar um erro na execução do programa, parando num certo endereço de memória. Para evitar isso deve-se inicializar o objeto OLE e fechá-lo na finalização.

Na unidade de código do formulário atual, insira a unidade ActiveX na cláusula “Uses”, logo no começo do código, caso não tenha:

fig20
Checado isso, role a tela do código até o final, e adicione antes do último “End” (em se tratando do Delphi), estas linhas:

Initialization
OleInitialize(nil);

Finalization
OleUninitialize;

Se seu programa já possuir os blocos “Initialization” e “Finalization”, atente-se para inserir as linhas certas entre eles, sem duplicar os blocos em si. Isso vale tanto para o controle do IE, como do Mozilla ou qualquer outro controle Active-X que você venha a importar. Veja como deverá ficar na tela:

fig21depois desse “end.” não vem mais nada

Aí é só fazer a festa 🙂

Você pode criar navegadores específicos para a ajuda do seu programa, ou até mesmo inserir um quadro que abra uma página HTML (seja local ou on line) dentro do seu programa.

Se usar o controle do Mozilla, não se esqueça de redistribuir os arquivos dele, e registrar o “mozctlx.dll” com o “regsvr32”. Para o IE você não precisa se preocupar com isso, pois todo Windows a partir do 98 já vem com ele instalado (esse controle funciona para o IE 4, 5, 6 e 7). Se seu programa precisar rodar no Windows 95 ou NT4, exija a presença do IE, caso contrário, ele não irá funcionar. Lembre-se que você não pode, em teoria, copiar os arquivos do IE e mandar junto com seu programa.

Sobre o Autor

Redes Sociais:

Deixe seu comentário

X