Como identificar qnd se WebBrowser terminou de carregar URL?

Delphi

06/05/2005

Pessoal estou tentando fazer um GET em uma página que usa o protocolo https://, a página que preciso acessar é chamada através uma ISAPI, já tentei usar a INDY, e mesmo com ela atualizada, não consigo acessar a página, tentei usar também o componente ICS sem sucesso também, a saída foi usar o WEBBROWSER dinâmicamente,

mas estou com o seguinte problema, não consigo identificar quando a página foi totalmente carregada, alguém tem alguma sugestão de como posso idetificar se o WebBrowser já terminou de carregar a página ou até mesmo de outro componente que consiga acessar um URL https:// que carrega uma ISAPI?


Jonasces

Jonasces

Curtidas 0

Respostas

Rjun

Rjun

06/05/2005

No TWebBrowser tem o evento OnDocumentComplete. Utilize ele para saber se a pagina ja foi carregada.


GOSTEI 0
Jonasces

Jonasces

06/05/2005

Mas como implementaria isso em um componente criado dinâmicamente?


GOSTEI 0
Rjun

Rjun

06/05/2005

Crie uma procedure com a mesma assinatura do evento OnDocumentComplete e quando você criar dinamicamente browser, desvie o evento para a procedure que voce criou.

myBrowser.OnDocumentComplete := myProcedureTratamento;


GOSTEI 0
Jonasces

Jonasces

06/05/2005

Não consegui usar essa procedure fiz o que pediu, só consigo utilizar ela quando o componente está no Form, tem idéia do pode está ocorrendo?


GOSTEI 0
Rjun

Rjun

06/05/2005

Poste o código da procedure que você criou e do trecho que você está desviando o evento.


GOSTEI 0
Jonasces

Jonasces

06/05/2005

Tentei até usar o onNavigateComplete que funciona dinãmicamente, mas parece que ele não faz a mesma coisa que o onDocumenteComplete, aliás sabe o que ele faz?


Obrigado!


GOSTEI 0
Jonasces

Jonasces

06/05/2005

//Instacio a classe
procedure TfrmPrincipal.FormCreate(Sender: TObject);
begin
vWebBrowser := TWebBrowser.Create(Self);
end;

procedure TfrmMain.Pesquisa (aPalavraChave: String);
begin
vWebBrowser.OnNavigateComplete2 := Self.vWebBrowser1NavigateComplete;

vWebBrowser.OnDocumentComplete := Self.oWebBrowserDocumentComplete;

vWebBrowser.Navigate(URL);

end;

procedure TfrmMain.vWebBrowserDocumentComplete(Sender: TObject;
const pDisp: IDispatch; var URL: OleVariant);
begin
ShowMessage (´Deu certo´);
end;


GOSTEI 0
Rjun

Rjun

06/05/2005

Aparentemente esta certo. A mensagem que você colocou não esta aparecendo ?


GOSTEI 0
Jonasces

Jonasces

06/05/2005

Eu teria que char a procesure ´vWebBrowserDocumentComplete´ de algum lugar? Não entendi bem


GOSTEI 0
Jonasces

Jonasces

06/05/2005

A mensagem não aparece.


GOSTEI 0
Rjun

Rjun

06/05/2005

Jonas

É o seguinte : para que isso funcione o TWebBrowser tem que estar visivel, nem que você o coloque em um form transparente. Mas isso so funciona no XP.


GOSTEI 0
Jonasces

Jonasces

06/05/2005

Cara, brigadão, se precisar de ajuda estamos ai também...

Vou resolver com o NavegateComplete e fazendo alguns tratamentos.


GOSTEI 0
Jonasces

Jonasces

06/05/2005

Rogério, vc sabe de algum componente diferente da Indy, ICS e Wininet para conenctar a páginas e pegar o conteúdo delas?

Obrigado!


GOSTEI 0
Rjun

Rjun

06/05/2005

Jonas

Não tenho conhecimento de outro. Pq ? O TWebBrowser não serve ?


GOSTEI 0
Jonasces

Jonasces

06/05/2005

Até serve, mas queria usar apenas algumas funções dele, vc sabe se eu consigo achar a implementação dele em algum lugar?


GOSTEI 0
Rjun

Rjun

06/05/2005

Não entendi. Como assim só algumas funções ?


GOSTEI 0
Jonasces

Jonasces

06/05/2005

Cara o WbBrowser resolveu o meu problema temporariamente, mas tem algumas caracteríscas dele que não gostei e não preciso usar também, quero achar a implementação dele para construir um componente com as mesmas características dele mas sem algumas coisas que ele possui.


Valeu pela ajuda ai hem...


GOSTEI 0
Jonasces

Jonasces

06/05/2005

Cara, o seguinte, o WebBrowser resolveu o meu problema, mas queria tirar algumas características dele e mudar outras, essa coisa dele não ficar invível no form, por exemplo, por isso queria saber se consigo achar a implementação dele.


GOSTEI 0
POSTAR