¿Detectar HTTP 404 (página no encontrada) en un TWebBrowser?
Hola amigos,
Nuevamente, me veo en un problema =) Y eso es lo entretenido de este mundo de la programación, se soluciona uno pero llega otro :=) Bueno... el problema de fondo es que no logro detectar en el TWebBrowser cuando la página especificada en el método Navigate no existe (error 404). Cuando pruebo las propiedades LocationURL y LocationName sólo muestra la URL anterior especificada en Navigate, no la URL o el archivo donde es redireccionado el navegador cuando se genera el HTTP 404. He probado todos los Eventos con estas propiedades y no logro obtener lo que necesito. Como el TWebBrowser está basado completamente en Internet Explorer, supongo que debe existir un método para detectar esto desde Delphi. Estuve investigando en Google acerca de esto y sólo tengo dos posibles pistas, que son la función QueryStatusWB y la variante OleObject del TWebBrowser, cuya ayuda en Delphi dice lo siquiente (QueryStatusWB): Código:
Returns information about what commands the Web browser supports. ¿Alguien me puede echar una manito =)? De antemano, muchas gracias y saludos. |
Usa el evento NavigateError del WebBrowser:
Sólo hay un pequeño problema. Al menos en Delphi 7, el TWebBrowser no tiene este evento :D No estoy seguro, pero al parecer este evento apareció en IE6 y supongo que Delphi7 es anterior por lo que al importar el control ActiveX no lo publica. Lo que he hecho es instalar manualmente el control ActiveX yendo al menú Component|Import ActiveX Control. En la lista buscas "Microsoft Internet Controls" e instalas el control. En la paleta ActiveX me aparecieron dos controles: WebBrowser_V1 y WebBrowser. El bueno es el WebBrowser y ése ya trae el evento NavigateError. // Saludos |
Muchas gracias estimado roman, ya he solucionado el asunto gracias a ti. Era justamente lo que necesitaba. Toda tu explicación es correcta y justamente como acabo de leer en Internet ese evento no viene en el WebBrowser de Delphi 7 porque la librería SHDocVw que usaba no estaba implementada en ese tiempo.
Cordiales saludos y nuevamente, gracias colega :=) |
La franja horaria es GMT +2. Ahora son las 23:49:47. |
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