Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Internet
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 01-07-2010
Avatar de miguel_fr
miguel_fr miguel_fr is offline
Miembro
 
Registrado: mar 2004
Ubicación: Santiago del estero, Capital
Posts: 73
Poder: 21
miguel_fr Va por buen camino
2 WebBrowser y 1 delay ayuda please

resulta que tengo 2 webbrowser para poder recorrer una pagina.
con el WebBrowser1 cargo mi pagina inicial que dispone de varios link, los que voy recorriendo de a 1 en el otro WebBrowser2.
utilizo el evento
TForm1.WebBrowser1DocumentComplete
desde donde realizo un bucle buscando los link enviandolo al otro webbroser

TForm1.WebBrowser2DocumentComplete
dentro de este, saco la informacion que me interesa.

el problema esta en que el primer evento donde se encuentra mi bucle no espera a la terminacion del evento TForm1.WebBrowser2DocumentComplete
Responder Con Cita
  #2  
Antiguo 01-07-2010
Avatar de miguel_fr
miguel_fr miguel_fr is offline
Miembro
 
Registrado: mar 2004
Ubicación: Santiago del estero, Capital
Posts: 73
Poder: 21
miguel_fr Va por buen camino
lo que yo quiero hacer es que despues de mandar este codigo (linea 2)
Begin
1)..........
2)form1.WebBrowser2.Navigate('http://www.mandacojones.com');
3)..........
4)..........
end;

Antes de seguir con la linea 3) de codigo, que se termine de ejecutar mi proceso de carga completa en el webbrowser2

procedure TForm1.WebBrowser2DocumentComplete
Begin
...
...
end;

intente usando form1.WebBrowser2.ReadyState, donde el valor 4 seria que ya esta listo CREO, pero nose bien como hacer la pausa porque si lo pongo en un bucle el programa se traba muchisimo. ya se me estan acabando las ideas de como hacer la pausa please!!!

Última edición por miguel_fr fecha: 01-07-2010 a las 16:15:50.
Responder Con Cita
  #3  
Antiguo 01-07-2010
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 29
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
He notado que el problema planteado es muy recurrente. Es como si las propiedades Busy y ReadyState de TWebBrowser, por sí solas, no fueran del todo fiables.

Hace tiempo implementé esta solución. Ojalá a ti también te resulte útil.

Código Delphi [-]
Unit WaitWebBrowser;

Interface

  Uses
    ShDocVw, ActiveX;

  Type
    TWaitWebBrowser = Class (TWebBrowser)
      Protected
        { Fields }
        WaitingForDocumentComplete :Boolean;

        { Static methods }
        Function GetIdle :Boolean;

        { Overridden methods }
        Procedure InvokeEvent (DispID :TDispID; Var Params :TDispParams);
          Override;
      Public
        { Static methods }
        Procedure NavigateWait (Const URL :String);
        Procedure WaitForIdle;

        { Properties }
        Property Idle :Boolean Read GetIdle;
    End;

Implementation

  Uses
    Forms;

  { TWaitWebBrowser }

  { Protected static methods }

  Function TWaitWebBrowser.GetIdle :Boolean;
  Begin
    Result := Not WaitingForDocumentComplete And Not Busy And
      (ReadyState = ReadyState_Complete);
  End;

  { Protected overridden methods }

  Procedure TWaitWebBrowser.InvokeEvent (DispID :TDispID;
    Var Params :TDispParams);
  Begin
    If DispID = 250 Then  // OnBeforeNavigate2
      WaitingForDocumentComplete := True
    Else
      If (DispID = 259 { OnDocumentComplete }) And
      (ReadyState = ReadyState_Complete) Then
        WaitingForDocumentComplete := False;

    Try
      Inherited InvokeEvent (DispID, Params);
    Except
      WaitingForDocumentComplete := False;
      Raise;
    End;
  End;

  { Public static methods }

  Procedure TWaitWebBrowser.NavigateWait (Const URL :String);
  Begin
    Navigate (URL);
    WaitForIdle;
  End;

  Procedure TWaitWebBrowser.WaitForIdle;
  Begin
    Repeat
      Forms.Application.ProcessMessages;
    Until Idle;
  End;

End.

Código Delphi [-]
WaitWebBrowser1.NavigateWait ('http://www.clubdelphi.com/');

Un saludo.

Al González.
P.D. Miguel, te recomienzo esforzarte en el empleo adecuado de acentos. Con ello te darás a entender mejor en tus siguientes intervenciones.
Responder Con Cita
  #4  
Antiguo 01-07-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
[ interrupción en el tema ]

¡¡¡ Al !!! me emociona verte de nuevo !!!

[ / interrupción en el tema ]

Última edición por Casimiro Notevi fecha: 03-07-2010 a las 12:56:42.
Responder Con Cita
  #5  
Antiguo 03-07-2010
Avatar de miguel_fr
miguel_fr miguel_fr is offline
Miembro
 
Registrado: mar 2004
Ubicación: Santiago del estero, Capital
Posts: 73
Poder: 21
miguel_fr Va por buen camino
muchas gracias lo voy a poner en practica
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Delay al conectarse con el sevidor MySQL golf2008 MySQL 2 05-02-2009 01:22:22
Ayuda WebBrowser cosuroca Internet 3 11-09-2008 15:24:27
crea ayuda de aplicacion con WebBrowser Yensis22 Internet 0 27-08-2008 02:32:05
Ayuda con WebBrowser JulioGO Varios 2 09-05-2005 05:02:57
Delay de Pascal Esau OOP 4 28-08-2003 21:32:11


La franja horaria es GMT +2. Ahora son las 02:22:52.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi