OCX con manejo de pantalla - ¿Cómo agregar un control Web Explorer a nuestra aplicación?
Previous topic  First topic  Next topic


Nota: todas las versiones nuevas de MiniGUI contienen un control ACTIVEX que permite hacer lo aquí explicado con el agregado del manejo de eventos. Este control está basado en la versión final de la clase TActiveX.

En el tópico anterior se explicaron algunos conceptos básicos sobre ActiveX, OLE, COM y OCX, es aconsejable leerlo antes de adentrarse en este tópico (OCX - ¿Cómo usar componentes ActiveX en nuestra aplicación)
Si ya lo hizo, sigamos avanzando: La implementación standard de ActiveX que se provee con [x]Harbour no permite incorporar controles ActiveX que tengan incidencia sobre el Form de nuestra aplicación. Por ejemplo, no podriamos agregar un ActiveX que incorporar un reloj analógico a nuestro form.

Con la ayuda de un código provisto por
Oscar Joel Lira Lira (oscarlira78@hotmail.com) y adaptado por Marcelo Torres (lichitorres@yahoo.com.ar) y por mi, hemos obtenido un resultado bastante auspicioso aunque con una falencia, NO MANEJA EVENTOS (por ahora).

Nota: En la página de Oscar Lira (http://freewin.sytes.net) hay una implementacion de Web Explorer con eventos, el problema es que el c'odigo liberado solo funciona con xHarbour. En cuanto Oscar publique el codigo fuente que tambien trabaje co Harbour voy a poner un ejemplo de uso con MiniGui.

Para armar un ejemplo de esta implementación construiremos una aplicación MiniGui que tiene la habilidad de contener un control ActiveX que maneja el objeto Internet Explorer de Microsoft.
Este ActiveX esta siempre registrado en nuestro Windows por lo cual no es necesario registrarlo desde nuestra aplicación.

El código fuente del ejemplo que contruiremos se puede bajar desde aqui mismo: ActiveX_With_Screen.zip

Esta implementación funciona con todas las versiones de minigui soportadas por QPM tanto con Harbour como con xHarbour y consta de un solo fuente que siempre debera estar incorporado a nuestro proyecto, el fuente se llama TAxPrg.prg.

La idea básica es que la clase TActiveX tiene la habilidad de crear y devolvernos dos objetos, uno correspondiente al lugar que el control ocupa en nuestro Form y otro conteniendo el control ActiveX que queremos utilizar.

El primer objeto, que podria entenderse como una region o subventana dentro de nuestro form es el encargado de posicionar al ActiveX en cuanto a coordenadas, ancho, visibilidad y demás atributos que hacen a la estética del control.

El segundo objeto es el control ActiveX propiamente dicho y va a manejar las propiedades y los médotos que él provea.

Entonces, lo primero que crearemos es el objeto de la region mediante el siguiente método:


oWActiveX := TActiveX():New( , , , , , )

y luego crearemos el objeto del control con el siguiente método:

oActiveX := oWActiveX:Load()

En este punto, ya se ha dibujado un rectangulo (Método New) y se ha inicializado el control (Método Load), por lo tanto estamos en condiciones de empezar a usarlo invocando los métodos del control, por ejemplo, para iniciar la navegacion de una página de Internet con el control Web Explorer ejecutariamos la siguiente instrucción:

oActiveX:Navigate( "www.google.com.ar" )

En cambio, para cambiar el tamaño de la región utilizaremos el Método ReSize pero sobre el otro objeto, el que hizo el dibujo en el Form:

oWActiveX:ReSize( 0 , 0 , 100 , 200 )

Esta es una imagen de como quedará nuestro simple ejemplo:



QPM (QAC Based Project Manager) Version 05.05.0016

Compilación Incremental con las tres versiones de librerías mas populares de la familia MiniGui: HMG, HMG Extended y OOHG.

Lista de usuarios    Donar vía PayPal    Sitio del proyecto


Powered by QPM  

Previous topic  First topic  Next topic