Integrando Aplicações Delphi com JavaScript
Podemos utilizar o nosso poderoso Delphi para se interagir com aplicações web, um exemplo pratico disso e utilizar o google maps em nossa aplicações
Você não gostou da qualidade deste conteúdo?
(opcional) Você gostaria de comentar o que não lhe agradou?
Bem pessoal, neste artigo mostarei alguns dos fantásticos recursos do dephi: como se pode interagir com suas aplicação web. Principalmente nos dias de hoje em que as aplicações web estão ganhando cada vez mais espaço no mercado, é importante entender como interagir e usar todo o poder do javascript, e como sua aplicação win32 feitas em delphi podem se beneficiar desta tecnologia.
Quais as vantagens
Nossas aplicações acessando recursos de web site e até mesmo interagindo com eles. Um exemplo prático disso seria uma aplicação utilizando os maravilhosos recursos do Google maps.
Um exemplo prático
Bem, vamos trabalhar diretamente com as API do Google maps.
- Crie uma aplicação normal no Delphi
Agora, vamos ta utilizar o componente TWebBrowser da paleta internet, temos que adicionar a uses MSHTML para termos acesso às interfaces para manipular o HTML e os objetos dele.
- Coloque um componente TWebBrowser no Form;
- No evento OnShow do formulário coloque o seguinte:
procedure
TfrmPrincipal.FormShow(Sender: TObject);
begin
WebBrowser1.Navigate(ExtractFilePath(Application.ExeName)
+ 'google.html');
end;
- Bem, no meu caso eu criei um arquivo de HTML que contem as API’s e chamadas de função de javascript para que o Delphi possa chamar.
- Adicione um TEdit e um TButton e no evento OnClick do Button1 fazemos assim :
procedure TfrmPrincipal.Button1Click(Sender: TObject);
Begin
with WebBrowser1.Document as
IHTMLDocument2 do
parentWindow.execScript('showAddress("' + edBuscar.Text +
'")', 'javascript')
end;
Isto fará com que o nosso WebBrowser1
chame e execute esta função javascript
que esta dentro do nosso HTML.
function
showAddress(address) {
if (geoCoder) {
geoCoder.getLatLng(
address,
function(point) {
if (!point) {
alert(address + " não
encontrado");
} else {
map.setCenter(point, 13);
}
}
);
}
}
Esta função chama a API do Google Maps para localizar um endereço e centralizar na nossa tela.
Isso e umas das coisas que podemos estar colocando em nosso sistemas. Podemos traçar rotas tão facilmente como localizar uma rua. Vamos à prática:
Coloque dois TEdit na tela e mais um TButton e no OnClick coloque as linhas abaixo:
procedure TfrmPrincipal.Button2Click(Sender: TObject);
begin
with WebBrowser1.Document as
IHTMLDocument2 do
parentWindow.execScript('setDirections("' + Edit1.text +
'","' + edit2.Text + '")', 'javascript');
end;
Bem podemos ver que não mudou muita coisa e sim a função que foi chamado do Java script
function
setDirections(fromAddress, toAddress) {
gdir.load("from: " +
fromAddress + " to: " + toAddress, {
"locale":+"en_US" , "getSteps":true});
}
Com isso ira traçar uma rota no mapa. “Legal!” você deve estar dizendo, “e agora, eu consigo pegar o trajeto igual tem no Google maps?”. Sim, conseguimos pegar esta rota também.
Adicione um Tmemo e mais um TButton na tela e no OnClick adicione as linhas abaixo:
procedure
TfrmPrincipal.Button3Click(Sender: TObject);
begin
with TWebNav.Document as IHTMLDocument2
do
with body.all as
IHTMLElementCollection do
with item('directions', 0) as
HTMLDivElement do
Memo1.Text := innerText;
end;
Como funciona? Através das interfaces do MSHTML temos acesso também aos elementos do HTML , neste caso, temos no nosso HTML um <div> no qual a API do Google Maps retornou as informações da rota, e através deste HTMLDivElement conseguimos ler estas infomações e trazer para a nossa aplicação. Aqui trouxemos a informação para dentro do Memo1.
Outras possibilidades de uso
Agora que temos uma idéia de como funciona este recurso podemos imaginar várias outras possibilidades de uso:
- você pode ter uma aplicação na web e precisar emitir cupom fiscal. Como? Temos a possibilidade de que sua aplicação traga o resultado em um <div> utilizando Ajax e seu aplicativo ler este <div> e emitir um cupom
- Você tamém poderá integrar sua aplicação web com outros recursos da máquina.
- Integração de seu sistema com websites que contém informações ou até mesmo exportar informações para estes websites acessando suas funções javascript.
Conclusão
Com as idéias apresentadas e usando um pouco de criatividade você poderá expandir bastante o poder de sua aplicação web e continuar utilizando a linguagem que você já domina – o poderoso Delphi.
Links
http://www.cryer.co.uk/brian/index.htm
Analista, programador e arquiteto na Questor Sistema. Trabalha com Delphi, desde da versão 5, e Firebird, Mysql desenvolvendo aplicações cliente-servidor. Formado em Tecnologia de Processamento de dados pela Cesumar, na cidade de Maringá-PR.
2 COMENTÁRIOS
Gostaria de conversar contigo a respeito da produção de artigos para a revista ClubeDelphi.
Vi seu artigo e gostei bastante.
Poderia entrar em contato comigo?
E-mail e Msn: falecom@adrianosantos.pro.br
Abs
Adriano Santos
Tudo jóia? Sou editor chefe da revista ClubeDelphi e o Gladstone me passou seu contato. Me informou que você tem interesse em escrever artigos, certo?
Vamos conversar a respeito? Quais assuntos você domina e deseja falar?
Meu adicione no msn para que possamos conversar se for o caso.
falecom@adrianosantos.pro.br
Adriano Santos
Director X-35 Consulting and Development
IT Manager SoftPark
Chief Editor Magazines ClubeDelphi && WebMobile
www.delphitodelphi.blogspot.com
www.adrianosantos.pro.br
www.devmedia.com.br
www.dug-sp.com

download


