[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