| Artículos | 01 OCT 1995

Curso de Programación Delphi (3)

Tags: Histórico
La importancia de los formularios
Jaime Peña.

Los formularios son la base del desarrollo de aplicaciones en Delphi y un elemento central.

Un formulario es la representación física de la ventana que contendrá todos los componentes de la aplicación. Un formulario es el lugar físico en que insertaremos los componentes (visuales o no) que contiene nuestra aplicación. Ya que su representación es una ventana Windows, los formularios se emplearán para definir la ventana principal y las ventanas de las posibles cajas de diálogo con las que trabajemos.

Al crear un nuevo proyecto, Delphi define una ventana de formulario por defecto, que podremos modificar en el inspector de objetos (Object Inspector). Si observa la hoja de propiedades del inspector de objetos, ya podrá deducir mucho de lo que es susceptible de personalizarse en un formulario, algo que va desde su título, hasta el color de fondo, tamaño de fuentes, tipo de borde o los botones de comando de su barra de título.

Las propiedades pueden ser definidas en el momento del diseño o modificadas dinámicamente durante la ejecución del programa. Las que son definidas durante el diseño (todas las que aparecen recogidas en el inspector de objetos y que tienen unos valores predeterminados en el diseño) son las que definen la apariencia del formulario cuando se inicia la aplicación.

Posteriormente, mediante las funciones de respuesta a eventos (event handlers) podremos alterar algunas de las propiedades, por ejemplo el título o el color de la ventana. Otras, por el contrario, sólo pueden cambiarse dinámicamente, por ejemplo el tipo de alineamiento o el color de la brocha de relleno gráfico. Encontraremos también algunas que no son definibles (son de sólo lectura), como las que nos devuelven el handle de la ventana o las que nos dicen si un control pertenece al formulario.

Abrir un nuevo proyecto

Para ver cómo podremos trabajar con un formulario, vamos a partir de un proyecto nuevo. En Delphi se puede realizar esta tarea de dos formas: cerrando el entorno sin ninguno abierto, es decir, seleccionando antes de cerrar Delphi la opción de menú File\Close Project, y volviéndolo a abrir, o seleccionando la opción de menú File\New Project.

En el primero de los casos, ya se nos mostrará un formulario en blanco (sin ningún componente dentro de él). En el segundo caso se nos mostrará un conjunto de plantillas (templates) de formularios predeterminados, seleccione uno que sea de su interés.

Sea como fuere, el entorno de desarrollo de Delphi mostrará ahora las siguientes ventanas que tienen que ver con el diseño del proyecto nuevo:

- Object Inspector: el inspector de objetos con los valores de las propiedades del formulario o del componente seleccionado en él.

- Code Editor: el editor de código de las unidades (units) que conformarán la aplicación; inicialmente sólo habrá una denominada UNIT1.PAS, pero se trata de una serie de páginas con pestañas, para acceder a las otras posibles unidades.

- Ventana del formulario: es el panel en que se insertarán componentes; inicialmente está tapando la ventana del editor de código y tiene el título Form1.

Propiedades del formulario

Un formulario desciende de la clase TForm y contiene todo un conjunto de propiedades, métodos y funciones de respuesta a eventos. Por el momento nos fijaremos en sus propiedades. Estas pueden ser, según los posibles valores que adopten, de valor único (por ejemplo, Caption y Height), grupos de subpropiedades asociadas en conjuntos (sets) (por ejemplo, BorderIcons), propiedades booleanas (por ejemplo, AutoScroll), objetos con subpropiedades desplegables o anidadas (por ejemplo, HorzScrollBar y Font), una selección de valores en caja de diálogo (por ejemplo, Font) o una selección de valores en una lista (por ejemplo, Color y Cursor).

En cualquier momento del proceso de diseño, al cambiar los valores de una propiedad en el inspector de objetos, se reflejará dicho cambio en la ventana del formulario y, si es posible, como al redimensionarla, el nuevo valor de la ventana se refleja en la propiedad correspondiente del inspector de objetos. Eso es uno de los potenciales que más apreciaremos en Delphi, lo que se denomina Two-Way-Tool Technology y que también abarca el código que haya en los editores, que se actualiza automáticamente y que al modificarlo, cambiará automáticamente valores de propiedades y apariencias del formulario.

Puede obtener ayuda acerca de la funcionalidad de cada propiedad seleccionándola, haciendo clic sobre ella, y pulsando la tecla F1. Para desplegar las propiedades anidadas de una dada, por ejemplo de BorderIcons, haga doble clic sobre el signo más ("+") que hay a su izquierda, para contraer la lista, haga doble clic en el signo menos ("-").

Cuando se trate de cambiar entre valores Booleanos (True/False), bastará hacer doble clic en el interior del área de edición que hay a la derecha de la propiedad. Así, podríamos diseñar una ventana sin los botones de maximizar y minimizar (algo muy adecuado si la vamos a utilizar como una caja de diálogo), desplegando las propiedades de BorderIcons y haciendo doble clic sobre biMinimize y biMaximize.

Cuando se trate de una propiedad que puede adoptar unos valores discretos, haga clic sobre el botón flecha abajo que aparece a la derecha del área de edición y seleccione el deseado. Por ejemplo, podríamos cambiar Color seleccionando clYellow.

Las dimensiones del formulario, que se acotan mediante las propiedades ClientHeight y ClientWidth, se pueden determinar escribiendo valores numéricos en el área de edición a la derecha de la propiedad. Pero es más visual hacerlo arrastrando los bordes, tal como dimensionamos una ventana normal en Windows. De igual manera se puede acotar la posición del formulario en la pantalla, lo que se reflejará en sus propiedades Left y Top.

Fijar propiedades en el código fuente

Las propiedades de un formulario pueden variarse dinámicamente en tiempo de ejecución. Para ello, hemos de referenciarlas adecuadamente y darle valores aceptables en el propio código fuente de la aplicación.

La sintaxis para referenciar una propiedad es muy simple, del tipo Objeto.Propiedad, en donde Objeto es el identificador del objeto al que nos queremos referir. eso se sabe seleccionándolo en la ventana del formulario (o seleccionando el propio formulario) y viendo el identificador que se muestra en la propiedad Name. Por ejemplo, podríamos cambiar el color del fondo del formulario a rojo, mediante la línea de código Form1.Color := clRed;. También podemos emplear funciones del API de Windows apropiadas, por ejemplo, para fijar colores se puede utilizar la función RGB (R:Byte; G:Byte; B:Byte), que devuelve un LongInt (entero largo): Form1.Color := RGB(255, 0, 0);. Cómo y dónde hacerlo será tema de más adelante, cuando tratemos lo referente al trabajo con funciones de respuesta a mensajes (eventos).

En el caso de propiedades anidadas, por ejemplo, para fijar como itálicas en negrilla la propiedad estilo de la propiedad (tipo objeto TFont) fuente de caracteres, se emplearía la sintaxis Form1.Font.Style := [fsBold,fsItalic];. Obsérvese que, en este caso, se asocian diversos valores complementarios en forma de conjunto, ya que la propiedad es de tipo Set (conjunto).

Personalización del formulario

Varias de las propiedades del formulario nos servirán para personalizar su apariencia y/o comportamiento. Veamos seguidamente algunas de ellas:

- AutoScroll: Puede adoptar los valores TRUE y FALSE. Fijará la aparición automática de barras de desplazamiento, vertical y/u horizontal si al redimensionar el formulario se oculta parte del contenido de su área cliente.

- BorderStyle: Determina el aspecto del borde de la ventana. Sus valores pueden ser bsSizeable (borde normal de una ventana redimensionable), bsSin

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