| Artículos | 01 ENE 2000

Componentes, propiedades, métodos y eventos

Tags: Histórico
Programación con Delphi (III)
Francisco Charte.
Cuando se comienza a trabajar con una nueva herramienta, el usuario generalmente quiere ver resultados de manera inmediata. Por ello en la entrega anterior, segunda de esta serie, nos centramos en el desarrollo de nuestro primer programa con Delphi, a pesar de que desconocemos la mayoría de las características de esta herramienta y sus componentes. En esta tercera entrega nos ocuparemos, con algo más de detalle, de lo que estamos utilizando y generando al trabajar con Delphi. Para ello nos serviremos del mismo programa de ejemplo de la entrega anterior, analizando su diseño, el código generado y funcionamiento.
Delphi es una herramienta de desarrollo visual, lo que habitualmente se conoce como un RAD (Rapid Application Development, Desarrollo rápido de aplicaciones). Esto significa que ciertas tareas, como el diseño de las interfaces de usuario o la creación del modelo de acceso a datos, se efectúan de manera visual, arrastrando y soltando elementos conocidos como componentes. Si tan sólo conoce herramientas visuales, esta metodología le parecerá la más lógica. No obstante, hasta la aparición del concepto RAD, hace unos años, y aún hoy, existen muchas herramientas de desarrollo en las que crear una interfaz de usuario, por poner el ejemplo más simple, requiere un gran trabajo de codificación.
Las herramientas RAD disponen de componentes prefabricados, que efectúan una determinada labor, y asistentes que generan código automáticamente. Estos elementos hacen que crear una aplicación simple sea un juego de niños pero, a cambio, ocultan gran parte del funcionamiento del sistema y las propias aplicaciones, por lo que el desarrollador desconoce lo que está ocurriendo y, en ocasiones, incluso lo que él mismo está haciendo.

El lenguaje Object Pascal
Todos los componentes que incorpora Delphi están escritos en Object Pascal. Los asistentes de Delphi generan código en Object Pascal. Nuestras reglas de negocio, el código que tendremos que escribir para implementar la funcionalidad de nuestra aplicación, deberemos realizarlas usando Object Pascal. No hay duda, por tanto, de que se trata de un lenguaje que deberíamos conocer bien para poder aprovechar Delphi.
Describir el lenguaje Object Pascal, tan sólo básicamente, abarcaría algunos cientos de páginas de pura teoría. Una buena forma de aprender un lenguaje, sin comenzar con esa descripción, consiste en ver código, analizarlo y modificarlo. Es el sistema que todos hemos empleado de niños, para aprender el idioma que hablamos: oyendo, repitiendo y analizando. Posteriormente, cuando sepamos defendernos con él, tendremos ocasión de conocer la sintaxis general y teórica.
Pascal es un lenguaje originalmente pensado para la educación, lo cual, indudablemente, influyó en su estilo, muy claro y fácil de entender, especialmente para los anglo-parlantes. En Pascal existen variables, constantes, bucles y funciones, como en cualquier otro lenguaje actual.
Los elementos esenciales del lenguaje no son muchos, más allá de las estructuras de control y manipulación de datos más o menos simples. El resto de las operaciones se efectúan con procedimientos y funciones, escritos en módulos de código independientes que es posible incluir en nuestros proyectos.

Clases y objetos
Como su propio nombre denota, Object Pascal es una versión del lenguaje Pascal original pero orientada a objetos. Esto significa que en Object Pascal es posible definir clases de objetos, que serían los moldes a partir de los cuales, posteriormente, se crearían copias de ese objeto. Existen multitud de clases predefinidas, disponibles para ser usadas por nosotros. Utilizando la clase TButton, por ejemplo, podemos crear tantos objetos de tipo botón como deseemos o necesitemos.
Hágase a la idea de que la clase es un molde de madera o metal, mientras que el objeto es lo que se obtiene al verter la escayola en ese molde. Lógicamente, puede usar el mismo molde para crear tantos objetos como quiera. Posteriormente, utilizando pinturas y otros tratamientos, puede diferenciar cada objeto de los demás, aunque, básicamente, todos ellos son similares puesto que han salido del mismo molde.
En Object Pascal las clases pueden heredar unas de otras, pueden derivarse clases nuevas de otras que ya existen. Suponga que tiene un molde ya hecho y que, partiendo de él, construye otro más complejo, que tiene los elementos del anterior más otros nuevos que ha añadido posteriormente. Básicamente, lo que ha hecho es derivar un molde de otro, heredando en el nuevo las características del antiguo. Esta técnica, que en Object Pascal se utiliza continuamente, permite crear clases muy complejas, derivando repetidamente unas de otras y dando lugar a lo que, habitualmente, se conoce como jerarquías de clases. La VCL (Visual Component Library, Librería de componentes visuales) de Delphi es una jerarquía de clases.
El Listado 1 corresponde a la definición de una clase simple en Object Pascal. La palabra class es la que identifica a esta porción de código, hasta encontrar la palabra end, como una definición de clase. La que está definiéndose se llamará TBeepButton, indicándose que ésta será una derivada de TButton, una clase ya existente. No se preocupe en este momento por comprender todos los elementos de ese código, lo importante es que le resulte familiar la construcción. En este caso concreto, lo único que se hace es añadir una propiedad, llamada Beep, de tipo Boolean, por lo que tan sólo podrá tomar los valores True y False.
Como iremos viendo en ésta y futuras entregas, hay clases predefinidas, que se generan mediante asistentes y otras que podemos escribir nosotros manualmente. Prácticamente todos los elementos que usamos en una aplicación Delphi: el formulario, los botones, cajas de texto, etc., son objetos, es decir, elementos obtenidos a partir de una definición de una clase.

Propiedades
En la analogía usada anteriormente, en que se comparaba una clase con un molde para escayola, decíamos que los objetos obtenidos a partir del molde, todos exactamente iguales, podían personalizarse de diferentes formas. Es posible, por ejemplo, pintar toda la figura de un cierto color, añadirle ornamentos, vestirla, etc.
Los objetos que se crean a partir de una clase, como TBeepButton, también son todos idénticos. Si esto quedase así, lógicamente, no serían objetos muy útiles. Imagine para qué puede servir la clase TButton si todos los botones tienen siempre las mismas dimensiones, el mismo título, tipo de letra, etc. Los objetos creados a partir de clases, obviamente, también pueden ser personalizados, aunque usando elementos algo menos tangibles que la pintura o una prenda de vestir.
La personalización de un objeto se efectúa, en Delphi, a través de sus propiedades. Éstas son elementos expuestos por el componente a fin de que el programador pueda personalizarlo, estableciendo colores, dimensiones, títulos, enlaces a bases de datos, conexiones con servidores, etc. Al igual que otros elementos, van heredándose de unas clases a otras. Nuestra clase TBeepButton, por tanto, contará con todas las propiedades que ya existían en TButton, aparte de la propiedad Beep propia.
Desde nuestro punto de vista, el usuario de los objetos para crear aplicaciones, una propiedad se utiliza de manera similar a como se usa una variable cualquiera. Es decir, podemos leer el contenido de una propiedad, por

Contenidos recomendados...

Comentar
Para comentar, es necesario iniciar sesión
Se muestran 0 comentarios
X

Uso de cookies

Esta web utiliza cookies técnicas, de personalización y análisis, propias y de terceros, para facilitarle la navegación de forma anónima y analizar estadísticas del uso de la web. Consideramos que si continúa navegando, acepta su uso. Obtener más información