RES: [delphi-br] Componente WebBrowser

2009-09-09 Por tôpico Claudiney - Listas
Olá Felipe.

Legal. Ficou interessante a criação do HTML nessa variável. Bem mais fácil e
claro.
Agora o bom é que também já sei por onde seguir hora que for colocar no
sistema.
Já batemos cabeça. Rsrs

Abraço. 


Claudiney Cogo
N2 Sistemas e Soluções em Informática
Av. São Paulo, 172 - 15º Andar - Sala 1505
Fone/Fax: (44) 3029-6053 - Maringá - Paraná
www.n2solutions.com.br
www.nfe.n2solutions.com.br
www.studion2.com.br

-Mensagem original-
De: delphi-br@yahoogrupos.com.br [mailto:delphi...@yahoogrupos.com.br] Em
nome de Felipe Oriani
Enviada em: terça-feira, 8 de setembro de 2009 19:28
Para: delphi-br@yahoogrupos.com.br
Assunto: Re: [delphi-br] Componente WebBrowser

Olá Claudinei, tudo bem ?
Deu certo sim =D! Eu tentei fazer escrevendo o html com aquela função que
citei no começo... do mesmo jeito que você disse! Parametrizei na url do
iframe com as informações do endereço que preciso e gerei um html assim:

'monta html necessário
HTML := HTML + 'html';
HTML := HTML + ' body';
HTML := HTML + '  iframe  /';
HTML := HTML + ' /body';
HTML := HTML + '/html';

'seta no mapa
WBLoadHTML(wbMapa, HTML);

Depois utilizei a função inicial que coloquei no primeiro post e mandei
exibir. Fico bem legal! Acho que o ActiveX estava impedindo a execução do
maps no WebBrowser. Antes estava tentando fazer manualmente com
javascript... enfim! ficou legal!

Caso alguém precise, está ai a solução.

Detalhe que para usar essa função que citei no primeiro post, é necessário
incluir a biblioteca ActiveX.

Valeu Claudinei!
Abraços
Att,






2009/9/8 Claudiney - Listas claudiney-lis...@n2solutions.com.br



 Olá Felipe.

 Realmente pra utilizar o IFRAME você precisa ter um arquivo HTML que
 contenha ele. O mais tranqüilo eu acredito que seja gerar um pequeno HTML
 temporário com os dados que você quer apresentar e chamar este HTML no
 navigate do webbrowser. Não vejo outra maneira de fazer isso, já que o
 iframe é parte de um arquivo HTML. Algo mais ou menos assim:

 html

 head

 titleTeste/title

 /head


 iframe width=425 height=350 frameborder=0 scrolling=no
 marginheight=0 marginwidth=0 src=http://maps.google.com/maps?q=av.
 sao paulo 175 maringaamp;output=embedamp;sll=37.0625,-
 95.677068amp;sspn=31.150864,59.238281amp;ie=UTF8amp;ll=-23.413083,-


51.940784amp;spn=0.008801,0.014462amp;z=14amp;om=1amp;s=AARTsJqGyCChOuky
 MX_CAaQ01tl-1QdG4A/iframe

 /html

 Assim já mostra o mapa, mas não apresenta o link para o mapa ampliado...
 para isso é só colocar o código inteiro que te passei antes.

 Outra coisa é tentar o seguinte...

 Crie essa função:


 procedure WBLoadHTML(WebBrowser: TWebBrowser; HTMLCode: string) ;
 var

 sl: TStringList;
 ms: TMemoryStream;
 begin
 WebBrowser.Navigate('about:blank') ;
 while WebBrowser.ReadyState  READYSTATE_INTERACTIVE do
 Application.ProcessMessages;

 if Assigned(WebBrowser.Document) then
 begin
 sl := TStringList.Create;
 try
 ms := TMemoryStream.Create;
 try
 sl.Text := HTMLCode;
 sl.SaveToStream(ms) ;
 ms.Seek(0, 0) ;
 (WebBrowser.Document as
 IPersistStreamInit).Load(TStreamAdapter.Create(ms)) ;
 finally
 ms.Free;
 end;
 finally

 sl.Free;
 end;
 end;
 end;

 Agora tente carregar o html nela.. o iframe direto:

 WBLoadHTML(WebBrowser1,’ iframe width=425 height=350 frameborder=0
 scrolling=no marginheight=0 marginwidth=0
 src=http://maps.google.com/maps?q=av. sao paulo 175
 maringaamp;output=embedamp;sll=37.0625,-
 95.677068amp;sspn=31.150864,59.238281amp;ie=UTF8amp;ll=-23.413083,-


51.940784amp;spn=0.008801,0.014462amp;z=14amp;om=1amp;s=AARTsJqGyCChOuky
 MX_CAaQ01tl-1QdG4A/iframe’)

 Algo mais ou menos assim... Essa função não é minha... só copiei, portanto
 não sei te dizer se funciona 100%, mas acredito que sim.

 Pode ser que isso resolva o problema de não ter que criar um HTML só pra
 isso.

 Depois me diz se a função deu certo..

 Abraço.

 _

 Claudiney Cogo
 N2 Sistemas e Soluções em Informática
 Av. São Paulo, 172 - 15º Andar - Sala 1505
 Fone/Fax: (44) 3029-6053 - Maringá - Paraná
 http://www.n2solutions.com.br/ www.n2solutions.com.br
 http://www.nfe.n2solutions.com.br/ www.nfe.n2solutions.com.br
 http://www.studion2.com.br/ www.studion2.com.br

 De: delphi-br@yahoogrupos.com.br delphi-br%40yahoogrupos.com.br [mailto:
 delphi-br@yahoogrupos.com.br delphi-br%40yahoogrupos.com.br] Em
 nome de Felipe Oriani
 Enviada em: terça-feira, 8 de setembro de 2009 11:34
 Para: delphi-br@yahoogrupos.com.br delphi-br%40yahoogrupos.com.br
 Assunto: Re: [delphi-br] Componente WebBrowser

 Olá Claudinei, é extamente este meu problema... rs.. não quero exibir o
 restante da página... apenas o mapa do google!
 Eu fiz da mesma forma que você disse (a primeira), coloquei o link com os
 parametros na url e ficou show, porém ele exibe a página inteira e permite
 que o usuário comece a acessar outras coisas além do mapa... o que não
 quero
 que aconteça!

 Mas também não queria deixar um arquivo .html externo ao meu .exe
então
 estou tentando escrever o html direto e jogar no 

RES: [delphi-br] Componente WebBrowser

2009-09-08 Por tôpico Claudiney - Listas
Olá Felipe.

 

Fiz algo parecido em um sistema.

 

Criei um form só com o componente webbrowser e os botões necessário pra
fechar ou alguma função mais que precise.

 

Depois no meu cadastro, coloquei um botão na frente do endereço que chama o
mapa, dessa maneira:

 

  Application.CreateForm(TFrmMapa, FrmMapa);

  FrmMapa.WebBrowser1.Navigate('http://maps.google.com/maps?q=' +

   TrimRight(DBEdtEndereco.Text) + ',' +

   TrimRight(DBEDTCidade.Text) + ',' +

   TrimRight(DBCBEstado.Text) + ', Brasil');

  FrmMapa.ShowModal;

  FrmMapa.Free;

 

Isso resolveu sem problemas. A única coisa é que carrega a página toda do
googlemaps. Tem outra forma que não inclui no sistema ainda que carrega só o
mapa. Só questão de configurar os campos. Assim:

 

iframe width=425 height=350 frameborder=0 scrolling=no
marginheight=0 marginwidth=0 src=http://maps.google.com/maps?q=av. sao
paulo 175
maringaamp;sll=37.0625,-95.677068amp;sspn=31.150864,59.238281amp;ie=UTF8
amp;ll=-23.413083,-51.940784amp;spn=0.008801,0.014462amp;z=14amp;om=1amp
;output=embedamp;s=AARTsJqGyCChOukyMX_CAaQ01tl-1QdG4A/iframebr
/smalla href=http://maps.google.com/maps?q=av. sao paulo 175
maringaamp;sll=37.0625,-95.677068amp;sspn=31.150864,59.238281amp;ie=UTF8
amp;ll=-23.413083,-51.940784amp;spn=0.008801,0.014462amp;z=14amp;om=1amp
;source=embed target=_blank style=color:#FF;text-align:leftExibir
mapa ampliado/a/smallbr

 

 

Esse é o fonte da página que ele usa. Claro que é possível parametrizar e
fazer uma função. A parte em negrito é onde tá o endereço.

 

Abraço.

 

  _  

Claudiney Cogo
N2 Sistemas e Soluções em Informática
Av. São Paulo, 172 - 15º Andar - Sala 1505
Fone/Fax: (44) 3029-6053 - Maringá - Paraná
 http://www.n2solutions.com.br/ www.n2solutions.com.br
 http://www.nfe.n2solutions.com.br/ www.nfe.n2solutions.com.br
 http://www.studion2.com.br/ www.studion2.com.br

 

De: delphi-br@yahoogrupos.com.br [mailto:delphi...@yahoogrupos.com.br] Em
nome de Felipe Oriani
Enviada em: segunda-feira, 7 de setembro de 2009 15:29
Para: delphi-br@yahoogrupos.com.br
Assunto: [delphi-br] Componente WebBrowser

 

  

Olá Pessoal, como vai ? Tenho uma aplicação em delphi 7 e gostaria de exibir
o google maps a partir de um endereço. Estou tentando fazer manualmente mas
estou com alguns problemas. Tentei associar um arquivo html a um componente
webbrowser e funcionou porém não consegui parametrizar. Gostaria de não
precisar deste arquivo html (externo) a minha aplicação então resolvi
colocar o código HTML dentro de minha aplicação. Assim encontrei na web uma
função que me permite escrever html em um componente webbrowser (veja a
função no final do email). O problema é que quando executo no browser este
HTML ele funciona sem problemas, porém ele pede autorização do IE para
executar um ActiveX, e quando rodo este no Delphi ele da um erro (alert de
javascript... sem mensagem) e não exibe o mapa... imagino que deva ser por
causa do ActiveX.
Minha dúvida: Existe alguma forma de ativar a execução de ActiveX no
WebBrowser do Delphi ???

OU

Gostaria de saber se existe algum componente a parte que permita que eu
passe o enderço, cidade, estado, cep, para ele e ele me desse a localização
no maps ???

Obrigado
Att,

Função que estou usando para exibir um código HTML em um WebBrowser:

procedure WBLoadHTML(WebBrowser: TWebBrowser; HTMLCode: string) ;
var
sl: TStringList;
ms: TMemoryStream;
begin
WebBrowser.Navigate('about:blank') ;
while WebBrowser.ReadyState  READYSTATE_INTERACTIVE do
Application.ProcessMessages;

if Assigned(WebBrowser.Document) then
begin
sl := TStringList.Create;
try
ms := TMemoryStream.Create;
try
sl.Text := HTMLCode;
sl.SaveToStream(ms) ;
ms.Seek(0, 0) ;
(WebBrowser.Document as
IPersistStreamInit).Load(TStreamAdapter.Create(ms)) ;
finally
ms.Free;
end;
finally
sl.Free;
end;
end;
end;

-- 
__
Felipe B. Oriani
fbori...@gmail.com mailto:fboriani%40gmail.com  | www.felipeoriani.com.br

...Examina o sentido, o modo e a direção de tuas palavras, antes de
pronunciá-las.. por Emmanuel

[As partes desta mensagem que não continham texto foram removidas]





[As partes desta mensagem que não continham texto foram removidas]



RES: [delphi-br] Componente WebBrowser

2009-09-08 Por tôpico Claudiney - Listas
Olá Felipe.

 

Realmente pra utilizar o IFRAME você precisa ter um arquivo HTML que
contenha ele. O mais tranqüilo eu acredito que seja gerar um pequeno HTML
temporário com os dados que você quer apresentar e chamar este HTML no
navigate do webbrowser. Não vejo outra maneira de fazer isso, já que o
iframe é parte de um arquivo HTML. Algo mais ou menos assim:

 

html

head

  titleTeste/title

/head

  iframe width=425 height=350 frameborder=0 scrolling=no
marginheight=0 marginwidth=0   src=http://maps.google.com/maps?q=av.
sao paulo 175 maringaamp;output=embedamp;sll=37.0625,-
95.677068amp;sspn=31.150864,59.238281amp;ie=UTF8amp;ll=-23.413083,-
51.940784amp;spn=0.008801,0.014462amp;z=14amp;om=1amp;s=AARTsJqGyCChOuky
MX_CAaQ01tl-1QdG4A/iframe

/html

 

Assim já mostra o mapa, mas não apresenta o link para o mapa ampliado...
para isso é só colocar o código inteiro que te passei antes.

 

Outra coisa é tentar o seguinte... 

 

Crie essa função:

 

procedure WBLoadHTML(WebBrowser: TWebBrowser; HTMLCode: string) ;
var

   sl: TStringList;
   ms: TMemoryStream;
begin
   WebBrowser.Navigate('about:blank') ;
   while WebBrowser.ReadyState  READYSTATE_INTERACTIVE do
Application.ProcessMessages;

   if Assigned(WebBrowser.Document) then
   begin
 sl := TStringList.Create;
 try
   ms := TMemoryStream.Create;
   try
 sl.Text := HTMLCode;
 sl.SaveToStream(ms) ;
 ms.Seek(0, 0) ;
 (WebBrowser.Document as
IPersistStreamInit).Load(TStreamAdapter.Create(ms)) ;
   finally
 ms.Free;
   end;
 finally

   sl.Free;
 end;
   end;
end;

 

Agora tente carregar o html nela.. o iframe direto:

 

WBLoadHTML(WebBrowser1,’  iframe width=425 height=350 frameborder=0
scrolling=no marginheight=0 marginwidth=0
src=http://maps.google.com/maps?q=av. sao paulo 175
maringaamp;output=embedamp;sll=37.0625,-
95.677068amp;sspn=31.150864,59.238281amp;ie=UTF8amp;ll=-23.413083,-
51.940784amp;spn=0.008801,0.014462amp;z=14amp;om=1amp;s=AARTsJqGyCChOuky
MX_CAaQ01tl-1QdG4A/iframe’)

 

Algo mais ou menos assim... Essa função não é minha... só copiei, portanto
não sei te dizer se funciona 100%, mas acredito que sim.

Pode ser que isso resolva o problema de não ter que criar um HTML só pra
isso.

 

Depois me diz se a função deu certo..

 

Abraço.

 

  _  

Claudiney Cogo
N2 Sistemas e Soluções em Informática
Av. São Paulo, 172 - 15º Andar - Sala 1505
Fone/Fax: (44) 3029-6053 - Maringá - Paraná
 http://www.n2solutions.com.br/ www.n2solutions.com.br
 http://www.nfe.n2solutions.com.br/ www.nfe.n2solutions.com.br
 http://www.studion2.com.br/ www.studion2.com.br

 

De: delphi-br@yahoogrupos.com.br [mailto:delphi...@yahoogrupos.com.br] Em
nome de Felipe Oriani
Enviada em: terça-feira, 8 de setembro de 2009 11:34
Para: delphi-br@yahoogrupos.com.br
Assunto: Re: [delphi-br] Componente WebBrowser

 

  

Olá Claudinei, é extamente este meu problema... rs.. não quero exibir o
restante da página... apenas o mapa do google!
Eu fiz da mesma forma que você disse (a primeira), coloquei o link com os
parametros na url e ficou show, porém ele exibe a página inteira e permite
que o usuário comece a acessar outras coisas além do mapa... o que não quero
que aconteça!

Mas também não queria deixar um arquivo .html externo ao meu .exe então
estou tentando escrever o html direto e jogar no WebBrowser...

Claudinei, como você fez? No caso temos o IFrame, você setou este código
html direto no webbrowser, como posso fazer isso? ou utilizou um arquivo
html externo a aplicação com este código do iframe ??? Caso tenha usado o
arquivo .html, como parametrizou o arquivo html ?

Obrigado pela atenção Claudinei!

Abraços
Att,

2009/9/8 Claudiney - Listas claudiney-lis...@n2solutions.com.br
mailto:claudiney-listas%40n2solutions.com.br 



 Olá Felipe.

 Fiz algo parecido em um sistema.

 Criei um form só com o componente webbrowser e os botões necessário pra
 fechar ou alguma função mais que precise.

 Depois no meu cadastro, coloquei um botão na frente do endereço que chama
o
 mapa, dessa maneira:

 Application.CreateForm(TFrmMapa, FrmMapa);

 FrmMapa.WebBrowser1.Navigate('http://maps.google.com/maps?q=' +

 TrimRight(DBEdtEndereco.Text) + ',' +

 TrimRight(DBEDTCidade.Text) + ',' +

 TrimRight(DBCBEstado.Text) + ', Brasil');

 FrmMapa.ShowModal;

 FrmMapa.Free;

 Isso resolveu sem problemas. A única coisa é que carrega a página toda do
 googlemaps. Tem outra forma que não inclui no sistema ainda que carrega só
 o
 mapa. Só questão de configurar os campos. Assim:

 iframe width=425 height=350 frameborder=0 scrolling=no
 marginheight=0 marginwidth=0 src=http://maps.google.com/maps?q=av.sao
 paulo 175


maringaamp;sll=37.0625,-95.677068amp;sspn=31.150864,59.238281amp;ie=UTF8


amp;ll=-23.413083,-51.940784amp;spn=0.008801,0.014462amp;z=14amp;om=1amp
 ;output=embedamp;s=AARTsJqGyCChOukyMX_CAaQ01tl-1QdG4A/iframebr
 /smalla href=http://maps.google.com/maps?q=av. sao paulo 175