Debe introducir al menos 3 caracteres en el buscador.
Inicio / Wikis / Cursos gratis / Creación de componentes VCL: Componentes gráficos - ¿Y por cual me decido?

Creación de componentes VCL: Componentes gráficos - ¿Y por cual me decido?

 ***** (2 opiniones)
Creative Commons Curso gratis de José Manuel - 27 de Agosto de 2005
3. ¿Y por cual me decido?
Una de los problemas típicos en la creación de componentes gráficos suele ser que no se elige convenientemente el padre del componente a crear. Para decidir el padre de nuestro componente, debemos saber el tipo de componente que queremos crear. Algunas preguntas que pueden ayudarnos son:
  • ¿Nuestro componente necesita recibir eventos de teclado? Necesitas un TWinControl

  • ¿Nuestro componente debe tener foco? Necesitas un TWinControl

  • ¿Nuestro componente debe requerir dibujar formas o imágenes lo más rápido posible? Necesitas un TGraphicControl

  • ¿Vamos a crear muchos componentes (cientos o miles) a la vez? Necesitas un TGraphicControl

  • ¿Nuestro componente va a contener otros componentes dentro de él? Necesitas un TCustomControl.

La mayoría de los componentes de la paleta de Delphi descienden de TWinControl, ya que permiten que el usuario interactúe con ellos. Sin embargo, algunos muy concretos, como TShape o TLabel, son descendientes directos de TGraphicControl, ya que su misión no es que el usuario los maneje, sino que muestren algo en la ventana.

TGraphicControl será nuestro padre
 

Como ya sabemos, la creación de un componente requiere conocer lo mejor posible la clase padre y el resto de clases antecesoras. En nuestro caso, debemos conocer, entre otras, la clase TGraphicControl, tal y como podemos ver en la imagen de la derecha.

Muchas de estas clases ya nos resultarán familiares, ya que TGraphicControl se basa en las mismas clases de la VCL que hemos visto hasta ahora: TComponente y TControl. Otras clases que podemos ver son TPersistent, que lo dejaremos para dentro de un rato, y TObject, de la no hemos hablado hasta ahora, aunque ya va siendo hora.

TObject es la base para cualquier clase que definamos en Object Pascal. Los componentes, por el mero hecho de ser clases, también descienden de TObject y heredan todas sus características. Normalmente no es necesario utilizar los métodos heredados de TObject, ya que estos son de un nivel demasiado bajo, y no nos solucionarán grandes problemas (excepto en contadas ocasiones).

El componente TGraphicControl no es muy complejo, así que no hay mucho que decir. Simplemente se trata de un envoltorio sobre la clase TCanvas, que es la encargada de dibujar directamente en pantalla, a través de un grupo de funciones del API llamado GDI (Graphic Independient Interface). Esta clase, en realidad, es la que debemos conocer muy bien para saber dibujar en la pantalla.

El único detalle importante que debemos conocer sobre TGraphicControl es que nos proporciona un método (llamado Paint) que debemos sobrescribir, y donde codificaremos lo necesario para dibujar el aspecto de nuestro componente. Dentro de este método podemos acceder a la propiedad Canvas, con la que dibujaremos las imágenes o figuras que sean necesarias. La VCL sólo llamará a este método cuando sea necesario dibujar el componente: cuando se muestra la ventana, si se maximiza, cuando reaparece la ventana detrás de otra, etc.

Autor y licencia de 'Creación de componentes VCL: Componentes gráficos - ¿Y por cual me decido?'
José Manuel Extraído de: http://www.lawebdejm.com

Creative Commons License
Esta obra está bajo una licencia de Creative Commons.
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.

Wikis relacionados con 'Creación de componentes VCL: Componentes gráficos - ¿Y por cual me decido?'

Un repaso a los componentes gráficos, aquellos en los que nos tenemos que encargar de... Más »
En los últimos años, el desarrollo basado en componentes se ha convertido en una de... Más »
Vamos a profundizar algo más en la programación de componentes, centrándonos en los eventos y... Más »
Ahora que ya sabemos programar nuestros componentes no visuales, vamos a aprender todo lo necesario... Más »
En los últimos años, el desarrollo basado en componentes se ha convertido en una de... Más »
¿Estás seguro de que deseas eliminar este capítulo?