(Visual Component Library – Biblioteca de Componentes Visuais)
O Windows fornece uma API (Application Program Interface – Interface de Programação de Aplicativo) para auxiliar na criação de programas. Como o Windows é gráfico, fornece em sua API objetos pré-definidos para o uso em aplicações que roda sobre o sistema operacional. Esta API além de objetos e interface, também dá acesso a todos os recursos que o sistema operacional disponibiliza, tais como gerenciamento de memória, acesso a discos entre outros.
A VCL tem grande parte desta API encapsulada em objetos. Isto facilita a programação, pois boa parte das funções da API estão encapsuladas nestes objetos, restando a nós instanciar os objetos e os mesmos fazem as chamadas as funções da API.
Alguns destes objetos são disponibilizados como componentes. Um componente é um tipo de objeto específico, que tem um padrĂ£o de interface para se conectar com outros objetos ou componentes.
Sempre que incluímos um novo componente estamos incluindo na VCL uma nova classe. Esta nova classe é descendente de uma classe relacionada com componentes jé existentes.
É importante o conhecimento da hierarquia da VLC antes de iniciarmos a criação de componentes. A figura 1 tem um diagrama mostrando essa hierarquia que seré explicada a seguir.

- TObject: Esta classe está no topo da hierarquia da VCL, servindo de base direta ou indireta para todos as outras classes, sendo impossível a criação de qualquer classe que nĂ£o tenha parentesco com ela.
- TPersistent: Esta classe introduz os métodos de persistência, permitindo salvar e recuperar dados do componente. Geralmente esses dados são gravados no arquivo DFM.
- TComponent: Todos os componentes da VCL descendem direta (componentes não visuais) ou indiretamente (componentes visuais) desta classe. O conceito de Proprietário (Owner) e é introduzido nesta classe.
Observação |
- Componentes não visuais: São os componentes que, embora apareçam em design-time, não fazem parte da interface do aplicativo. Esses componentes apenas disponibilizam recursos ao aplicativo, tais como métodos e propriedades. - Componentes visuais: São os componentes que fazem parte da interface do aplicativo, além de disponibilizam recursos. |
- TControl: Esta classe é a base para todos componentes visuais, introduzindo o comportamento comum a todos esses eles. O conceito de Container Visual (Parent) é implementado nesta classe.
- TGraphicControl: Os componentes não-ajanelados (não recebem foco e não pode conter outros componentes) têm esta classe como ancestral. Um componente descendente desta classe tem como propêsito primário exibir textos ou gráficos.
- TWinControl: Os componentes utilizados na criação das interfaces com usuários têm esta classe como base. Estes componentes podem processar entradas do teclado e mouse, recebendo o foco, além de poderem conter outros componentes.
- TCustomControl: Esta classe permite herdar todas as características da classe TWinControl além da propriedade Canvas e do método Paint. Assim como na classe TGraphicControl, a propriedade Canvas desta classe fornecer acesso área de desenho do controle, enquanto o método Paint permite desenhar diretamente sobre está superfície.