Visual Component Library
# Visual Component Library

VCL (Visual Component Library) es un marco de trabajo desarrollado por Borland basado en objetos visuales que tienen como finalidad diseñar frames para las aplicaciones que se han programado para Windows y diseñada bajo el concepto de componente: propiedades, métodos y eventos. Está estructuralmente y visualmente sincronizado con Windows, pues el aspecto de las ventanas, los botones o los accesos a internet, etc. son similares. Actualmente es propiedad de CodeGear, de Embarcadero Technologies. Está escrita en Object Pascal (orientado a objetos) por lo que la VCL es una librería usada por los entornos de desarrollo Delphi y C++ Builder.

## Clases de la VCL (componentes)

Al hablar de este tipo de bibliotecas o toolkits, se hace mención implícitamente a la programación orientada a objetos, pues los componentes son clases predeterminadas, haciendo su uso más sencillo, visual y cómodo. Se diferencian dos tipos de componentes.

### Componentes visuales

Entre los visuales se distinguen los botones, las etiquetas, las formas y demás elementos visibles.

### Componentes no visuales

Entre los no visuales están los temporizadores, las conexiones a bases de datos y demás elementos sin interfaz gráfica.

## Clases más importantes

Aunque no todas las clases hacen referencia a componentes concretos algunas realizan tareas de gestión interna y se utilizan como clases bases de las cuales derivan otras clases mediante la herencia. VCL es bastante profundo y complicado; no obstante, las clases que forman la parte superior jerárquica son clases abstractas y son:

### TObject

Es la clase base de VCL. Representa el comportamiento común de los objetos en C++ Builder. Todas las clases que son componentes no visuales heredan directamente de TObject.

### TPersistent

Define la capacidad de un objeto de almacenarse en disco o en memoria, asignarse a otros objetos, etc.

### TComponent

Dado que la mayoría de clases son componentes, esta es una de las clases más importantes de VCL. Estas clases pueden usarse para crear interfaces gráficas desde el entorno de programación.

