Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Internet (https://www.clubdelphi.com/foros/forumdisplay.php?f=3)
-   -   Problema con WebBrowser y OnNewWindow (https://www.clubdelphi.com/foros/showthread.php?t=74116)

jomadi04 31-05-2011 17:59:30

Problema con WebBrowser y OnNewWindow
 
Buenas, tengo un problema con el webbrowser y el evento onnewwindow. Lo que pretendo es que al pulsar sobre un enlace que se abriría en nueva ventana (o pestaña), que se abra sobre el mismo navegador en el que se pulsó el enlace (que es el único que hay) y que no abra un internet explorer.

Ya sé que se ha tratado algo sobre el tema, pero por más que he buscado no he encontrado nada que me funcione y sí, he usado el buscador del foro y me he leído prácticamente todos los mensajes donde se mencionaba el componente webbrowser.
he probado, aunque no me ha funcionado esto:
Código Delphi [-]
with Tceti.Create(nil) do
ppdisp:=webbrowser1.Application;

gracias de antemano

beginner01 31-05-2011 19:21:39

saludos.

con este codigo se te abrira en una nueva ventana de tu aplicación

Código Delphi [-]
procedure TForm1.wb1NewWindow2(Sender: TObject; var ppDisp: IDispatch;
  var Cancel: WordBool);
 var
 ventana2: TForm1;
begin
  Application.CreateForm(tForm1,ventana2);
  ventana2.wb1.RegisterAsBrowser := true;
  ppDisp := ventana2.wb1.Application;
  ventana2.Top:=ventana2.Top+20;
  ventana2.Left:=ventana2.left+20;
  ventana2.Show;

end;

jomadi04 01-06-2011 08:55:16

Cita:

Empezado por beginner01 (Mensaje 402031)
saludos.

con este codigo se te abrira en una nueva ventana de tu aplicación

Código Delphi [-]procedure TForm1.wb1NewWindow2(Sender: TObject; var ppDisp: IDispatch; var Cancel: WordBool); var ventana2: TForm1; begin Application.CreateForm(tForm1,ventana2); ventana2.wb1.RegisterAsBrowser := true; ppDisp := ventana2.wb1.Application; ventana2.Top:=ventana2.Top+20; ventana2.Left:=ventana2.left+20; ventana2.Show; end;

Ese código está bien si quieres que se abra otra ventana de tu aplicación, pero yo lo que quiero hacer es que lo que se abriría en una nueva ventana del navegador cargue sobre el navegador que estoy utilizando.

gracias por tu respuesta

jomadi04 01-06-2011 09:53:09

solucionado
 
bueno familia, por si a alguien le interesa acabo de dar con la solución, casi de casualidad (como los grandes descubrimientos del hombre jaja) y por si a alguien le puede venir bien es esta:
Código Delphi [-]
procedure Tform1.NuevaVentana(ASender: TObject; var ppDisp: IDispatch;
  var Cancel: WordBool);
  var
carga:TWebBrowser;
Documento : IHtmlDocument2;
elemento : IHtmlElement;
nuevadir:string;
begin
carga:=TWebBrowser(aSender);
Document := carga.Document as IHTMlDocument2;
elemento:=Documento.activeElement;
nuevadir:=elemento.toString;
Cancel:=true;   //para evitar que se abra la nueva ventana, ya sea de mi aplicación o de IE
webbrowser1.Navigate(nuevadir);
end;

creo que se puede dar por cerrado el tema e incluso trasladar la solución a trucos, porque seguro que a más de uno le entra esta duda en algún momento.

Un saludo!


La franja horaria es GMT +2. Ahora son las 02:36:26.

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