Creación de componentes VCL (III) - Heredando de TCustomComponent: otro mundo

9 - Heredando de TCustomComponent: otro mundo

[editar]
Curso gratis creado por José Manuel. Extraido de: http://www.lawebdejm.com
30 de Noviembre de 1999
Como hemos visto durante todo este ejemplo, heredando de un componente ya existente conseguimos personalizar su comportamiento final. Sin embargo, tenemos otra posibilidad muy interesante: crear un componente en los que se combinen otros componentes visuales (y no visuales), actuando como si fueran uno solo. Esto funcionaría siguiendo la misma filosofía que los objeto TFrame de Delphi, es decir: con un simple clic, incluimos en el formulario un componente todo lo complejo que queramos.
Heredando de TCustomComponent podemos crear un componente combinado, para mostrar varios componentes gráficos dentro de su espacio, y poder utilizar la misma pieza de software en distintos formularios.

Para conseguir esto, tenemos que utilizar la misma técnica que hemos explicado con el ejemplo anterior, aunque heredaremos de otro componente base. En nuestro caso, para crear un componente combinado podríamos heredar de TCustomComponent, que es precisamente la clase que nos proporciona la VCL para crear componentes combinados. En el constructor de “nuestro nuevo hijito”, procederemos a crear el resto de componentes que aparecerán en su interior. El principal inconveniente (que soluciona el componente TFrame) es que tenemos que actuar como si no tuviéramos un entorno de desarrollo, es decir: creando cualquier componente, o asignando los eventos y propiedades, en tiempo de ejecución, todo a través de código y sin ayudarnos del editor de propiedades y formularios del entorno de Delphi.

Para ello tenemos que tener que imitar lo que Delphi hace por nosotros: tener un atributo para cada uno de los componentes internos, que crearemos en el constructor y asignaremos su Parent a nuestro CustomComponent.

Si necesitamos hacer uso de los eventos de los componentes internos, debemos hacer lo mismo que hace el entorno de desarrollo: definir un método y asignarlo a la propiedad del componente que queramos.

Bueno, más vale una imagen que mil palabras, así que en el siguiente listado tenéis el código que debería tener un componente de este tipo, concretamente un componente que muestra una etiqueta (TLabel), un botón (TButton), y un campo de edición (TEdit), y en la imagen de la izquierda el resultado de este componente funcionando.

[editar]

Sé el primero en opinar


Cursos gratis relacionados con 'Creación de componentes VCL (III)'

En los últimos años, el desarrollo basado en componentes se ha convertido en una de... Más »

Autor y licencia de 'Creación de componentes VCL (III)'


Curso gratis de José Manuel. Extraido de: http://www.lawebdejm.com CopyLeft
Este contenido ha sido recopilado por el equipo de Wikilearning. Todo el contenido recopilado se ha obtenido respetando y comunicando en nuestro site la licencia de cada fuente.
Wikilearning tiene permiso expreso por escrito de los autores para publicar los contenidos que ha extraído de otras webs, incluyendo su uso comercial.