RES: [delphi-br] Componente WebBrowser
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
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
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