---- Quizás todavía recuerdes el ejemplo del navegador en el programa de muestra de Delphi. En ese ejemplo, se creó un navegador utilizando las propiedades y métodos del control THttp. Este ejemplo es realmente bueno para entender cómo utilizar el control THttp. Pero pocas personas lo usarán como un navegador real. La razón es muy simple. Las funciones son demasiado limitadas. No admite Frame, no admite el lenguaje de programación Script, no puede ver archivos HTML como archivos locales, etc. La mayoría de los usuarios usan IE o Navigator; los programadores también estamos felices de usar navegadores listos para usar. Cuando necesitamos usar el navegador, llamamos al navegador externo en el programa a través de métodos como WinExec o CreatePRocess para que lo usen los usuarios. De hecho, este método no presenta muchos problemas, pero siempre me hace un poco reacio a ceder el control del programa a otros programas externos. Siempre me genera muchos problemas, especialmente cuando el nivel de uso de la computadora por parte del usuario del software de la aplicación no es muy alto. alto. Sería fantástico si hubiera un control del navegador que le permitiera integrar el navegador en su propio programa.
---- Si el entorno externo de su software es WIN95 + IE o WIN98 (la tasa de uso de dicho software aún es muy alta), entonces ya existe un control del navegador IE en el sistema que puede usarse durante mucho tiempo. No te has dado cuenta del tiempo, no desperdicies recursos, úsalos. Cuando IE 3.X o IE 4., encontrará que el control IE se ha registrado en el sistema como un control ActiveX, por lo que podemos usar el control en Delphi.
---- Dado que el control del navegador IE debe proporcionar una función de visualización antes de poder usarse, no puede usar CreateOleObject para obtener una instancia en el programa y usar directamente sus propiedades y métodos; de lo contrario, el programa provocará un error al ejecutarse; en este caso, debe utilizar las funciones proporcionadas en Delphi "Importar control ActiveX", el método de operación se describe a continuación.
---- En el menú "Componentes", llame a la función "Importar control ActiveX", seleccione "Controles de Internet de Microsoft (Versión 1.1)" en la lista de Controles registrados y la ruta que se muestra en la barra de mensajes a continuación es C:PWin98SystemSHDOCVW .DLL, tres controles que se pueden registrar se enumeran en Nombres de clases (lista de tipos): TWebBrowser_V1, TWebBrowser y TShellFolderViewOC son respectivamente el control del navegador IE3, el control del navegador IE4 y el control "Microsoft Shell Folder View Router". Haga clic en Instalar para instalar. Una vez completada la instalación, se agregarán tres controles en la barra de control "ActiveX", a saber, TWebBrowser_V1, TWebBrowser y TShellFolderViewOC; en el directorio de Importaciones de Delphi, se creará un archivo SHDocVw_TLB.PAS, que contiene los detalles del paquete de estos tres controles. Por supuesto, contiene descripciones de las propiedades y métodos del control, que pueden usarse como referencia para que usemos el control.
----
Tomemos como ejemplo TWebBrowser (control del navegador IE4). Las propiedades y métodos comunes de TWebBrowser incluyen principalmente: GoBack: método, vuelve a la página anterior. GoForward: método para avanzar a la página siguiente. GoHome: Método, llama a la página de inicio predeterminada, que está configurada en las opciones de IE. GoSearch: Método, llama a la página de búsqueda predeterminada, que se configura en las opciones de IE. Navigate (const URL: WideString; var Flags, TargetFrameName, PostData, Headers: OleVariant): método, llama a la página especificada, los parámetros específicos son los siguientes: URL: la URL de la página especificada. Banderas: tipo de palabra, la función aún no está clara, se puede configurar en 0. TargetFrameName: WideString, abre el Marco donde se encuentra la página. Si es una cadena vacía, se abrirá en el Marco actual si el Marco especificado por TargetFrameName existe, se abrirá en el Marco especificado; TargetFrameName no existe, se abrirá una nueva ventana. Esto equivale a Para llamar al navegador IE externo. PostData: booleano, si se permite el envío de datos. Encabezados: WideString, los datos del encabezado de la solicitud de URL que se enviará. Actualizar: método, actualiza la página actual. Detener: Método, dejar de llamar o abrir la página actual. LocationName: Propiedad (WideString), el nombre de la ubicación actual. LocationURL: Propiedad (WideString), la URL de la ubicación actual. Ocupado: Atributo (booleano), si está ocupado. Visible: propiedad (booleana), si la ventana del navegador es visible. (Las siguientes propiedades son nuevas en TWebBrowser y no están disponibles en TWebBrowser_V1, y sus funciones deben explorarse) StatusBar: propiedad (booleana), si se muestra la barra de estado. StatusText: Propiedad (WideString), contenido de la barra de estado. ToolBar: Propiedad (SYSINT), contenido de la barra de herramientas. MenuBar: propiedad (booleana), si se muestra la barra de menú. Pantalla completa: propiedad (booleana), si se muestra en pantalla completa. Sin conexión: propiedad (booleana), si se navega sin conexión. AddressBar: propiedad (booleana), si se muestra la barra de direcciones. Los eventos comunes de TWebBrowser incluyen principalmente: OnStatusTextChange = procedimiento (Remitente: TObject; texto const: WideString) del objeto;
---- Ocurre cuando cambia la información del mensaje de la barra de estado. El parámetro Texto es la información del mensaje de la barra de estado actual. Podemos actualizar nuestra propia información del mensaje de la barra de estado o manejar otras transacciones en función de esta información.
----OnProgressChange = procedimiento(Remitente: TObject; Progreso, ProgressMax: Integer) del objeto;
---- Ocurre cuando cambia el progreso de la página abierta. El parámetro Progreso es el progreso actual y ProgressMax es el progreso total. Podemos actualizar la información de solicitud de nuestra propia barra de estado o manejar otras transacciones en función de estos dos parámetros.
----OnCommandStateChange = procedimiento(Remitente: TObject; Comando: Entero; Habilitar: WordBool) del objeto;
---- Ocurre cuando se ejecuta un nuevo comando. Comando es el identificador del comando y Habilitar es si se permite ejecutar el comando. OnTitleChange = procedimiento (Remitente: TObject; texto constante: WideString) del objeto;
---- Ocurre cuando cambia el título de la página, Texto es el título actual.
----OnPropertyChange = procedimiento (Remitente: TObject; const Property_: WideString) del objeto;
---- Ocurre cuando las propiedades de la página cambian, Property_ es el nombre de la propiedad OnDownloadComplete: TNotifyEvent
---- Ocurre después de que se completa la página de descarga.
----OnDownloadBegin: TNotifyEvent
---- Ocurre antes de que comience la página de descarga.
---- (1) Crea tu propio sistema de ayuda
---- Usamos el control del navegador IE para crear un sistema de ayuda para los usuarios. El archivo de ayuda se compone de varios archivos HTML. Un tema corresponde a un archivo HTML (Topic.HTM) y los elementos de cada tema corresponden al. Archivos HTML. Una etiqueta (#Artículo). De esta manera, en nuestro sistema, ya no necesitamos llamar al navegador IE o al programa WinHelp para brindar ayuda a los usuarios. Creo que todos conocen las ventajas de los archivos de ayuda HTML en comparación con los archivos de ayuda HLP tradicionales.
---- En el siguiente ejemplo, se demuestra el uso del método Navigate de TWebBrowser (control del navegador IE4). Preste atención a los comentarios en el programa. (A continuación se muestra el fragmento principal del programa).
{Llamar al archivo de ayuda según el tema y el proyecto}procedimiento ShowHelp(HelpTopic,HelpItem: String);var TargetFrameName,PostData,Heads,Flags:OleVariant;URL:widestring;begin TargetFrameName:= ';{Al especificar la cadena vacía de Marco, luego abra el archivo de ayuda en el marco actual} PostData := false;{No enviar datos} Heads := ';{La información del encabezado está vacía} Flags := 0;{Flags está establecido en 0} URL := HelpTopic + '.HTM#'+HelpItem;{URL de información de ayuda} con formHelp.webbrowser do{Mostrar información de ayuda en el control del navegador IE en la ventana de ayuda} comenzar a navegar( URL,Flags,TargetFrameName,PostData,Heads);{Mostrar información de ayuda} end;end;
---- (2) Mostrar una animación GIF
---- Si no tiene un control de visualización de animación adecuado, también puede probar el siguiente método.
procedimiento ShowGIF( GIFFileName : String );var TargetFrameName,PostData,Heads,Flags : OleVariant; URL : cadena ancha;begin TargetFrameName := ';{Cuando se especifica la cadena vacía de Frame, el archivo de animación se abrirá en el Frame actual} PostData := false;{No enviar datos} Heads := ';{La información del encabezado está vacía} Flags := 0;{Flags está establecido en 0} URL := GIFFileName; formGIF.webbrowser do{Mostrar animación en el control del navegador IE en la ventana especificada} comenzar a navegar(URL,Flags,TargetFrameName,PostData,Heads);{Mostrar archivo de animación} end;end;
----El programa anterior ha sido depurado bajo PWIN98+Delphi3.0.