Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 06-06-2008
Avatar de Black_Ocean
Black_Ocean Black_Ocean is offline
Miembro
 
Registrado: nov 2006
Posts: 128
Poder: 18
Black_Ocean Va por buen camino
¿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.

Delphi syntax:

function  QueryStatusWB(cmdID: OLECMDID): OLECMDF;

Description

Use QueryStatusWB to determine what commands can be executed using the ExecWB method. QueryStatusWB uses the QueryStatus method of the IOleCommandTarget interface to obtain information about the status of commands. For more information, see the Microsoft documentation of IOleCommandTarget.

cmdID specifies the command about which you want information.

QueryStatusWB returns a value made by adding together flags that indicate the status of the command.
Pero no logro entender como hacer algo con esta función, si es que realmente sirve para lo que necesito.

¿Alguien me puede echar una manito =)?

De antemano, muchas gracias y saludos.

Última edición por Black_Ocean fecha: 06-06-2008 a las 00:33:09.
Responder Con Cita
  #2  
Antiguo 06-06-2008
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Usa el evento NavigateError del WebBrowser:

Código Delphi [-]
procedure TForm1.WebBrowser1NavigateError(ASender: TObject;
  const pDisp: IDispatch; var URL, Frame, StatusCode: OleVariant;
  var Cancel: WordBool);
begin
  if StatusCode = 404 then
    ShowMessage('Error 404');
end;

Sólo hay un pequeño problema. Al menos en Delphi 7, el TWebBrowser no tiene este evento

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
Responder Con Cita
  #3  
Antiguo 06-06-2008
Avatar de Black_Ocean
Black_Ocean Black_Ocean is offline
Miembro
 
Registrado: nov 2006
Posts: 128
Poder: 18
Black_Ocean Va por buen camino
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 :=)
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Curiosidad Encontrada > TPhotoUploadCtl MaMu Internet 0 15-04-2008 08:41:55
Evitar mensaje error ¡DLL no encontrada! soypincharata Varios 2 02-05-2007 04:32:08
TWebBrowser saber cuando se cargo la pagina ivan022481 Internet 13 19-06-2006 22:36:42
TWebBrowser - Error al cerrar la página mediante un botón pepsi Internet 2 02-05-2006 16:59:05
Subir fichero a pagina Web via HTTP usando un script php jmoran Internet 0 11-07-2003 12:44:11


La franja horaria es GMT +2. Ahora son las 11:47:21.


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
Copyright 1996-2007 Club Delphi