Creación de componentes VCL (III) - Buscando a nuestro padre

3 - Buscando a nuestro padre

[editar]
Curso gratis creado por José Manuel. Extraido de: http://www.lawebdejm.com
30 de Noviembre de 1999
Lo primero que tenemos que decidir es de qué componente debemos heredar para tener la mayor parte del trabajo hecho. A priori, puede parecer sencillo ¿no? "Pues para tener un árbol tenemos que heredar de la clase TTreeView" diría cualquiera. Pues sí, pero no. La VCL esconde algunos secretos que tenemos que conocer si vamos a crear nuestros propios componentes heredados.
Antes hemos dicho que la VCL utiliza continuamente la herencia para sus propios componentes, es decir: que el componente TTreeView también tiene padre, abuelo, bisabuelo y una larga lista de ancestros, que han definido sus características, modo de actuación, apariencia, etc. Para que os hagáis una idea de la complejidad, podemos ver todos los antecesores de la clase TTreeView en la imagen de la derecha.

De todo este árbol genealógico, sólo vamos a fijarnos a partir TComponent:

  • TComponent: este nos resulta familiar, ya que es la clase a partir de la que hemos creamos nuestro conversor de monedas de los anteriores números. Los componentes no-visuales deben heredar directamente de TComponent, ya que este proporciona las características básicas.

  • TControl: se trata de la clase padre para todos los componentes visuales, ya sean gráficos o no.

  • TWinControl: de esta clase descenderán todos los componentes dibujados directamente por Windows. La principal característica de estos objetos (llamados ventanas o Windows) es que están identificados por un número único llamado descriptor o manejador de ventana (en inglés handle).

  • TCustomTreeView: se trata de la clase que permite mostrar un árbol dentro de un formulario de Delphi. La peculiaridad es que esta clase no tienen ningún método ni propiedad en la sección published, por lo que no puede ser manejada desde el entorno de Delphi.

  • TTreeView: esta ya es la clase o componente final, que aparece registrado en la paleta de componentes, y que puede ser configurado en tiempo de diseño. En realidad, todo el trabajo de esta clase se limita a publicar las propiedades y eventos que han sido programados en la clase TCustomTreeView.

Como veis, lo que parecía obvio no lo es tanto. Casi todos los componentes de la VCL que aparecen en la paleta son clases casi vacías, que sólo publican ciertas propiedades y eventos de la clase padre (que suele anteponer el prefijo Custom a su nombre). Es en esa clase “Custom” donde se codifica todo lo necesario para que el componente funcione. La gente de Borland diseñó de esta forma los componentes para permitir crear componentes especializados, como nuestro TArbolDirectorios, pero que no muestren todas las propiedades y eventos, sino sólo los que sean propios del componente que estamos creando. En nuestro caso, no publicaremos todas las propiedades, ya que consideramos que algunas no son apropiadas para un árbol de directorios.

[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.