



(2 opiniones)
Muchas de las propiedades de un componente se suelen referir al mismo aspecto. Por ejemplo, el componente TMonthCalendar (de la pestaña Win32) tiene una propiedad llamada CalColors que permite configurar los colores con que se muestrará el calendario en pantalla. Esta propiedad, aparece de una forma especial en el Inspector de Objetos, pudiéndose expandir, viendo las sub-propiedades dentro de la principal (como podéis ver en la imagen de la derecha). De este modo, podemos agrupar las propiedades que se refieran al mismo aspecto del componente.
Nosotros, como no podía ser de otra forma, también podemos hacer esto, simplemente sabiendo un par de cosas.
Ya hace tiempo que nos venimos encontrando con un personaje llamado TPersistent, aunque hasta ahora no hemos tenido el gusto de conocerlo. Bien, se trata una clase básica de la VCL, que nos ofrece todo el mecanismo de persistencia (es decir: almacenamiento) que utiliza Delphi para guardar las propiedades de los formularios. Pero vamos por partes. Todos sabéis que cuando estamos diseñando un formulario desde el entorno de Delphi, y pulsamos el botón “Save”, se crea un archivo con extensión “dfm” que contiene la definición del formulario. Esta definición no es más que texto plano, como podéis ver en el Listado de la derecha, en la que se va describiendo los componentes que aparecen en el formulario. Esto, aunque parezca magia, tiene un culpable: la clase TPersistent, que es un antecesor de todos los componentes.
Podemos decir que cualquier objeto, por el mero hecho de heredar de TPersistent, puede almacenar el valor de sus propiedades de la sección published dentro del archivo DFM.
Bien, pues nosotros también podemos crear nuestros descendientes de TPersistent, precisamente para eso, para que aparezcan en el DFM como una propiedad más.
El Inspector de objetos, además de mostrarnos las propiedades para que las veamos y modifiquemos, nos facilita la edición de ciertos tipos de propiedades, bien sea mostrando listas de selección (para los valores enumerados, booleanos, etc.), o bien agrupando las propiedades de los tipos descendientes de TPersistent.
|