| Artículos | 01 ABR 1996

Controles VBX. Inserción de objetos OLE

Tags: Histórico
Curso de Programación con Delphi (9)
Jaime Peña.

Los controles visuales VBX (y OCX en Delphi 2.0 32-bits) son extensiones del entorno, que nos permiten incluir infinidad de código compilado de terceros fabricantes. Por otra parte, la tecnología OLE es una de las fundamentales en los modernos desarrollos en Windows.

La historia de los controles visuales VBX está directamente ligada a Microsoft Visual Basic, bajo cuyo auspicio se desarrollaron (de ahí su nombre Visual Basic eXtensions). Con el devenir del tiempo, dado la amplitud de código existente, se implementó su empleo en otros entornos de desarrollo, como Microsoft, Borland o Symantec C++, PowerSoft Powerbuilder o dBase para Windows. Delphi también incluye, en su versión 1.0, soporte para emplear esos controles, más como una concesión a los desarrollos de terceras empresas (muy numerosos) que por sus ventajas sustanciales (los controles VBX son muy controvertidos en cuanto a su eficiencia). Por su parte, los controles OCX (OLE Controls) son tecnológicamente superiores y se prevé su extensión, mayormente, en formato 32-bits. De esa forma, los entornos de desarrollo de 32-bits (incluyendo los anteriormente comentados), han migrado el soporte hacia estos controles y sólo Borland C++ permite el uso de VBXs en entornos 32-bits. De cualquier manera, para el programador el uso de unos y otros es muy similar, por lo que ilustrado en un caso (aquí lo haremos con los VBX, ya que hemos basado el curso en Delphi 1.0 para 16-bits), será transcribible casi literalmente en el otro (léase Delphi 2.0 para 32-bits). La tecnología OLE no es realmente una novedad, ya desde hace tiempo se utiliza en las aplicaciones Windows más avanzadas. Con la llegada de Windows 95, eso ha pasado a ser una especie de condición, ya que se impone su uso para poder lucir la etiqueta de Diseñado para Windows 95. Así que, además de su innegable valor tecnológico, es ya una realidad la necesidad de considerarla en el desarrollo de todas nuestras futuras aplicaciones, siempre y cuando, obviamente, tenga sentido el intercambio de información.

Inclusión y utilización de controles VBX

Delphi permite utilizar controles visuales tipo VBX (Visual Basic eXtensions), que se han convertido en todo un estándar de código al estilo de incluir y listo para ser usado. Los controles VBX también disponen de propiedades, métodos y respuestas a eventos, por lo que desde dentro de Delphi no habrá una diferencia sustancial entre ellos y un componente Delphi estándar.

Lo que sí es distinto es el cómo se deben distribuir. Un componente Delphi estándar, a menos que utilice bibliotecas de enlace dinámico externas (DLLs), no precisa ser distribuido por separado, ya que se incluye todo el código necesario en el ejecutable (.EXE) generado por Delphi. Por contra, si usa controles VBX, deberá distribuirlos con el ejecutable final, ya que no se insertan en él y el usuario deberá copiarlos en el directorio SYSTEM de su instalación de Windows (lo más común) o en el directorio base desde el que se lanza la aplicación.

Para instalar en el entorno de trabajo de Delphi (IDE) un control VBX que pueda ser usado en el diseño de nuestras aplicaciones, hemos de hacerlo visible (una especie de registro e inclusión) en la biblioteca base de componentes de Delphi (el archivo COMPLIB.DCL, a menos que decidamos utilizar otra). Los pasos a seguir son muy sencillos, veamos un ejemplo en el que incluiremos un control VBX denominado EMEDIT.VBX, que suponemos se encuentra en nuestro directorio SYSTEM de Windows:

1) Seleccione la opción de menú de Delphi Options\Install Components.

2) En la caja de diálogo que se despliega (Install Components), haga clic sobre el botón VBX....

3) En la caja de diálogo de abrir archivo, localice el lugar en que se encuentra el control VBX a instalar. En nuestro ejemplo, el denominado EMEDIT.VBX, en el directorio SYSTEM de Windows. haga clic sobre él para seleccionarlo y luego sobre el botón Aceptar.

4) Pasará a una ventana en que se le muestran los nombres de clase que contiene el control. Haga clic sobre el botón OK.

5) Aparecerá en la lista Installed Units, de la caja de diálogo Install Components. Haga clic en su botón OK y se recompilará la biblioteca COMPLIB.DCL. Finalmente, tendrá el icono correspondiente en la ficha VBX de la paleta de componentes de Delphi, listo para usar el nuevo control.

Para utilizarlo en el diseño de sus aplicaciones, opere como si de otro componente Delphi se tratara. Por ejemplo, este VBX es un control de edición extendido, observe sus propiedades y métodos en el archivo EMEDIT.PAS que se habrá creado en el directorio SYSTEM (si tiene la documentación escrita del control, utilícela como referencia). Al insertarlo sobre la ventana de diseño del formulario, en el Inspector de Objetos, se mostrarán las dos fichas de Properties y Events habituales. Recuerde, finalmente, adjuntar el archivo EMEDIT.VBX con su aplicación y, en su caso, el archivo de licencia si fuese preciso (lea detenidamente la documentación correspondiente).

Todo lo dicho aquí para controles VBX trabajando con Delphi 16-bits (oficialmente Delphi 1.x), tradúzcalo literalmente para los nuevos controles OLE (OCX) que emplea Delphi 32-bits (oficialmente, Delphi 2.0).

En el disquete de este mes de PC World, se incluye un ejemplo completo de uso del control EMEDIT.VBX. Cópielo en el directorio SYSTEM, inclúyalo como se ha indicado en la paleta de componentes de Delphi (ficha VBX) y observe cómo utilizarlo en el proyecto del ejemplo. También se utiliza en el ejemplo el control CMDIALOG.VBX, para abrir archivos, buscar cadenas, etc. Con este control deberá seguir los mismos pasos para ser utilizado en el proyecto.

Conceptos básicos del soporte OLE

El estándar OLE (Object Linking and Embedding) es el modo común de compartición de documentos en el entorno Windows. Actualmente se puede implementar en sus versiones 1.0 y 2.0. En el primer caso, la edición de un objeto se realiza en una ventana separada, la de la aplicación con que está ligado. En el segundo, se produce una fusión de los entornos, de forma que en la ventana de la aplicación que tiene el objeto incrustado, se incluyen menús y barras de herramientas de la aplicación a que está ligado.

En todo este proceso, hay que tener en cuenta que para que esto sea así ambas aplicaciones, la que tiene el objeto insertado (container) y la servidora (server), deben atenerse al estándar OLE 2.0. Si una de las dos es cumplidora con OLE 1.0, el sistema se comporta como OLE 1.0 en su conjunto.

En Delphi, además de poder utilizar todo el sistema de las API de Windows, generalmente se utilizarán componentes de la clase TOleContainer, que se encuentra en la ficha System de la paleta de componentes. Un componente TOleContainer será el lugar en que podamos incrustar objetos OLE, pudiendo editarse con acciones como un doble clic. Una aplicación OLE 2.0 debe diseñarse de manera que disponga de un menú principal (TMainMenu) y de una barra de herramientas (TPanel con botones de acceso rápido, tipo TSpeedButton). El diseño general abarcará:

- Inserte un componente de la clase TPanel, que se encuentra en la ficha Standard, ajuste sus dimensiones y fije su propiedad Aling con el valor alTop. Ese será el lugar en que una aplicación servidora OLE 2.0 incluirá su propio sistema de botones de acceso rápido (barra de herramientas). Normalmente le interesará eliminar el contenido de la propiedad Caption.

- Puede incluir botones tipo TSpeedButton, que se encuentran en la ficha Additional, de forma que la aplicación ya disponga de una barra de herramientas propia para, por ejemplo, salir de la aplicación, insertar un nuevo objeto OLE, etc.

- Inserte un nuevo componente de la clase TPanel, que se encuentra en la ficha Standard, ajuste sus dimensiones y fije su propiedad Aling con el valor alBottom. Ese será el

Contenidos recomendados...

Comentar
Para comentar, es necesario iniciar sesión
Se muestran 0 comentarios
X

Uso de cookies

Esta web utiliza cookies técnicas, de personalización y análisis, propias y de terceros, para facilitarle la navegación de forma anónima y analizar estadísticas del uso de la web. Consideramos que si continúa navegando, acepta su uso. Obtener más información