Básicamente los componentes estan compuestos por:
Todos ellos forman el componente que se distribuirá dentrro del package. A continuación vamos a ir viendo los diferentes elementos que componen cada uno de los componentes.
Todos los manejadores de eventos que vamos a poder definir, así como las propiedades y los métodos van a tener una serie de directivas que va a marcar los ámbitos de visibilidad de los mismos. Las directivas usadas en la creación de los componentes son las siguientes:
Private
Todas las propiedades y métodos definidos dentro de esta directiva solo serán accesibles al código de la unidad donde se encuentre definida la propiedad o el método. Las propiedades que se definen dentro de esta directtiva suelen tener como misión el almacenamiento de valores que son necesarios para el funcionamiento del componente y que solo nos interesa que sean manejados desde el código del componente o desde la misma unit por otros componentes. De esta manera cuando se define una propiedad como published normalmente posee una propiedad definida como private respaldandola. La nomenclatura que se suele utilizar para definir las propiedades y los métodos dentro de esta directiva es que comiencen con la letra F seguida del nombre de propiedad o nombre de método.
Protected
Todas las propiedades y métodos definidos dentro de esta directiva serán accedidos por la unit donde aparece y por el resto de las unit donde aparecen las clases descendientes. Normalmente dentro de esta directiva se definen todos aquellos métodos que sirven para poder implementar los métodos y propiedades que se han definido en la clausula published.. En realidad es la directiva donde el escritor de componentes va a definir su interface de trabajo. Pesae a que las clases descendientes tienen acceso a las propiedades y a los métodos definidos dentro de esta directiva no ocurre lo mismo para las units que componen la aplicación
public
Dentro de esta directiva se suelen incluir aquellos métodos que sirven para poder implementar las funciones y propiedades que va a tener un ámbito global a todas las units y que van a tener que ser accesibles por el resto de componentes. Normalmente se definen dentro de esta directiva los métodos correspondientes al constructor y el desructor de la clase. Los métodos definidos dentro de esta clausula componen lo que se conocerá como el interface en tiempo de ejecución ya que estaran disponibles para los metodos de las units y para el resto de los componentes.
__automated
La visibilidad es la misma que en la directiva public con la excepción de que genera información relacionada con los procesos de automatización. Se suele utilizar para definir interfaces que trabajan con OLE.
__published
La visibilidad es la misma que en la directiva public con la excepción de que genera información relacionada con el tipo de los datos que maneja en tiempo de diseño. Todas las propiedades que definamos dentro de esta directiva va a aparecer dentro del inspector de objetos. Las propiedades que se definan en este apartado
Por defecto cualquier método o propiedad que definamos tendrá una visibilidad de private a no ser que indiquemos lo contrario.