[C con Clase] TCppWebBrowser (y sigo con problemas con el BDE 2006)
Info DSD
info en dysd.com.ar
Jue Dic 20 21:01:35 CET 2007
Hola
Estuve leyendo esto:
http://msdn2.microsoft.com/en-us/library/aa768326.aspx
en una parte, abajo, dice:
The pDisp parameter specifies the WebBrowser object of the top-level frame
that corresponds to the navigation. Navigation to a different URL might
occur as a result of external automation, internal automation from a script,
or the user clicking a link or typing in the address bar. The processing of
this navigation can be modified by setting the Cancel parameter to True, and
ignoring or resending a modified navigation method to the WebBrowser object.
When you resend a navigation for the WebBrowser object, the Stop method must
first be executed for pDisp. This prevents a web page that declares a
cancelled navigation from appearing while the new navigation is being
processed.
Entonces escribí esto en el evento BeforeNavigate2:
(bool CambiarURL; // en la decl de la clase
CambiarURL=true; // en el constructor)
if(CambiarURL)
{
mm->Lines->Add("Antes de navegar: " + AnsiString(*URL) + " Cancel: "
+
BoolToStr(*Cancel, true));
*Cancel = true;
Navegador->Stop();
*URL = TVariant("http://www.yahoo.com.ar/");
CambiarURL = !CambiarURL;
((TCppWebBrowser *)Sender)->
Navigate(WideString("http://www.yahoo.com.ar/").c_bstr());
mm->Lines->Add(" Cambiado por: " + AnsiString(*URL));
}
...pero no me gusta, me sigue pareciendo una chanchada aunque funcione.
¿Saben de alguna solución más prolija?
Muchas gracias.-
> -----Mensaje original-----
> De: cconclase-bounces en listas.conclase.net [mailto:cconclase-
> bounces en listas.conclase.net] En nombre de Info DSD
> Enviado el: Jueves, 20 de Diciembre de 2007 12:44 a.m.
> Para: 'Lista de correo sobre C y C++'
> Asunto: [C con Clase] TCppWebBrowser (y sigo con problemas con el BDE
> 2006)
>
> Hola
>
> Sigo en la lucha con el BDE 2006... que difícil la adaptación :S :D
>
> Ahora el problema lo tengo con el evento BeforeNavigate2 del componente
> TCppWebBrowser.
>
> Necesito cambiar la url que peticiona el usuario por un HTML local. Como
> parámetro, este evento me ofrece un Variant *URL para cambiar la url
> peticionada por la que yo quiera, pero resulta que cuando cambio la url,
> el
> componente ni cinco de bola, como si pasara una mosca.
>
> Probé varias cosas, como llamar inicialmente a Stop() y al final a
> Refresh()... básicamente con Navigate envío a http://www.google.com.ar
> (también probé con Navigate2) y en el evento escribo esto:
>
> Navegador->Stop();
> mm->Lines->Add("Antes de navegar: " + AnsiString(*URL));
> *URL = TVariant("http://www.yahoo.com.ar/");
> mm->Lines->Add(" Cambiado por: " + AnsiString(*URL));
> Navegador->Refresh();
>
> mm es un TMemo que marca esto:
>
> Antes de navegar: http://www.google.com.ar/
> Cambiado por: http://www.yahoo.com.ar/
>
> Pero como decía, el navegador esta emperrado en ir a Google... será amor a
> primera vista???
>
> Tengo instalado el Explorer 7
>
> Gracias.-
>
>
> _______________________________________________
> Lista de correo Cconclase Cconclase en listas.conclase.net
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
Más información sobre la lista de distribución Cconclase