La solución que mencionan de los foros anteriores parece no funcionar. El problema hasta donde entiendo es que el evento OnBeforeNavigate se genera en la
nueva ventana, no en la original.
Sin embargo hay una solución muy sencilla: el evento OnNewWindow2. Supongamos que FormBrowser es un formulario con un control WebBrowser. En su evento OnNewWindow2 ponemos:
Código:
procedure TForm1.BrowserNewWindow2(
Sender: TObject; var ppDisp: IDispatch; var Cancel: WordBool);
begin
with TFormBrowser.Create(Application) do
begin
ppDisp := WebBrowser.Application;
Show;
end;
end;
Y eso es todo, cada vez que un enlace nos lleve a otra ventana se abrirá un nuevo formulario con la página cargada.
Esto funciona aun cuando se trate de un enlace normal y escojamos la opción "Abrir vínculo en una nueva ventana"
Sin embargo no parece funcionar cuando oprimimos Ctrl-U o Ctrl_N para abrir una nueva ventana.
// Saludos