![]() |
![]() |
![]() |
![]() |
![]() |
||
![]() |
![]() |
![]() |
![]() |
![]() |
||
|
|
|
CAPÍTULOS
La ventana principal
- Características del form
- Manipulación de componentes
- Propiedades de TForm
- Eventos de TForm
- Métodos de TForm
- Etiquetas de texto
- El control Edit
- El control Memo
- El control Button
- El control CheckBox
- El control RadioButton
- El control ListBox
- Barras de desplazamiento
- El control Bevel
- El componente Timer
- El control MaskEdit
- El control RichEdit
- El control StatusBar
- El control TrackBar
- Los controles ProgressBar, SpinButton, SpinEdit y UpDown
- El control HotKey
- El control HeaderControl
- El control PageControl
- El control TImageList
- El control MainMenu
- El control PopUp Menu
- Algunas ventanas predefinidas
- Uso de varios forms en la aplicación
- Los cuadros OpenDialog y SaveDialog
- Los cuadros FontDialog, ColorDialog y PrintDialog
- Los cuadros FindDialog y ReplaceDialog
SECCIONES
SITIOS RECOMENDADOS
OTROS SITIOS DE LA AUTORA
Curriculum vitae
A través del espejo
Weblog: Educación en Internet
Weblog: Uno por uno, uno; uno por uno, dos; uno por uno...
En línea desde el 7 de noviembre de 2000 |
2.III. Propiedades de TFormNombre del componenteCada uno de los componentes usados en una aplicación, incluyendo en este conjunto los forms, ha de tener un nombre único que nos servirá para hacer referencia a ellos de una forma inequívoca. El nombre de los componentes se fija en tiempo de diseño, mediante la propiedad Name, convirtiéndose en una propiedad de sólo lectura durante la ejecución. En el momento en que se produce el cambio de nombre del componente, el código generado por Delphi se actualizará automáticamente, por ejemplo en los métodos de respuesta a eventos, serán modificados. Titulo del formSu finalidad es la de identificar la ventana en tiempo de ejecución. En principio, el título del form coincidirá con el nombre que se haya asignado a éste, de tal forma que si modificamos la propiedad Name el mismo valor será asignado también a la propiedad Caption, que es la encargada de mantener el título de los componentes que cuentan con este elemento. La asociación entre las propiedades Name y Caption es temporal ya que, aunque en principio la modificación de la primera influye en la segunda, este lazo se rompe en el momento en que nosotros modifiquemos el valor de Caption, introduciendo el título que más nos convenga. Dicho título es una cadena de caracteres, no un identificador, por lo que puede contener espacios en blanco y otra serie de caracteres especiales no permitidos en un identificador como es Name. Podemos alterar el título de un form desde el interior del programa simplemente asignando un nuevo valor a su propiedad Caption. Ámbito de tipoPara acceder a un miembro de un objeto debemos primero especificar el identificador del objeto, seguido de un punto y el identificador del miembro que se desea manipular. Esto es lo que se llama un referencia completa o cualificada, que nos permite acceder a identificar de forma inequívoca, ya que en dos objetos distintos pueden existir miembros con los mismos nombres, pero, sin embargo, no podemos tener dos objetos con el mismo nombre en el mismo ámbito. El código que nosotros podemos escribir en el interior de un método de respuesta a un evento, se encuantra en el ámbito del objeto. Al encontrarnos en el mismo ámbito que el objeto, para acceder a sus miembros no es necesario componer una referencia cualificada. De esta forma, para acceder a la propiedad Caption del objeto Form1 desde un método del propio objeto, no es necesario componer la referencia Form1.Caption, basta con el nombre de la propiedad. Sin embargo, si quisiéramos acceder a esa misma propiedad de otro form o componente distinto, sí que sería necesaria la composición de una referencia cualificada. Posición y dimensiones del formA medida que un componente es desplazado y redimensionado, su posición y tamaño actuales quedan almacenados en cuatro propiedades: Left contiene la coordenada horizontal, Top la vertical, Width la anchura del componente y Height la altura, medidas todas éstas expresadas en puntos de pantalla. La posición de cualquier componente de un form es relativa al interior de él, mientras que la posición de un form es absoluta, refiriéndose Left y Top a posiciones de pantalla. Generalmente, en tiempo de ejecución el form aparecerá en la misma posición en la que lo situamos durante el diseño y con el mismo tamaño, aunque por medio de la propiedad Position podemos configurar ambos parámetros. Esta propiedad puede tomar cualquiera de los siguientes valores:
La apariencia inicial de un form en pantalla también podemos fijarlo mediante la propiedad WindowState, que puede tomar los valores wsNormal, wsMinimize y wsMaximize, según deseemos que la ventana aparezca en su estado normal, minimizada como un icono, o maximizada ocupando la pantalla completa. Estos tres estados son independientes de las opciones que hayamos fijado mediante la propiedad anterior. El área clienteLa existencia de una barra de título, un borde de más o menos grosor, unos botones, etc., limitan el área realmente "útil" del form, que para nosotros es su interior, al que se denomina área cliente. Obviamente, al modificar el tamaño de la ventana también estamos alterando las dimensiones del área cliente, ya que está ocupa todo el interior del form. Podemos conocer y modificar las dimensiones del área cliente mediante las propiedades ClientWidth (ancho) y ClientHeight (alto). Proporciones generalesPor defecto el efecto de escalado no se produce, aunque la propiedad Scaled tiene al valor True. Dando el valor True a esta propiedad activaremos el escalado, cuya proporción vandrá dada por el valor que asignaremos a la propiedad PixelsPerInch. Dicho valor indica cuántos puntos de medida entrarán en cada pulgada, por lo que cuanto más grande sea el número, más reducida aparecerá el form y viceversa. Dando el valor False a la propiedad Scaled desactivaremos el escalado, a pesar de que hayamos asignado cualquier valor a PixelsPerInch. Hay que tener en cuenta que no es lo mismo escalar el form que redimensionarlo. En este último caso lo que hacemos es cambiar el tamaño del form, de tal forma que los componentes que hay en su interior pueden quedar ocultos en parte. Al escalar un form automáticamente se modifica también el tamaño de todos los componentes que hay en él, adecuando su tamaño, que se aumenta o reduce, para adecuarlo al del form. Estilo y controles del formPor defecto, un form contiene a la derecha de su barra de título tres botones, mediante los cuales podemos minimizar el form, maximizarlo o restaurarlo, o bien cerrarlo. En la esquina izquierda de la barra también existe un icono, que nos permite acceder al típico menú de sistema que tienen la mayoría de las ventanas Windows. La existencia o no de estos controles en el form dependerá de los valores que contenga la propiedad BorderIcons, que es un conjunto que puede contener tres valores distintos: biMinize, que representa el primer botón de los tres que hay en la parte derecha del form, biMaximize, representa al segundo de esos botones, biSystemMenu, al tercer botón y al menú de sistema. A pesar de que en el inspector de objetos indiquemos que no queremos en el form ciertos botones de los descritos, hasta que no ejecutemos el programa, dichos controles permanecerán activos para permitir la manipulación completa de la ventana. El borde del formMientras estamos diseñando un form, éste puede ser redimensionado sin más límites que los de la propia pantalla, con el fin de ajustarlo a nuestras necesidades. Una vez que el programa es ejecutado, las dimensiones del form podrán o no ser modificadas, por parte del usuario, dependiendo básicamente del valor que asignemos a la propiedad BorderStyle. Por defecto esta propiedad toma el valor bsSizeable, lo que permite que durante la ejecución el form pueda ser redimensionado por el usuario simplemente utilizando el cursor del ratón sobre cualquiera de sus extremos. Además de este valor, la propiedad BorderStyle también puede tomar los siguientes:
Apariencia tridimensionalLas últimas aplicaciones aparecidas para Windows 3.1 incorporaron en su mayoría efectos tridimensionales en ventanas y controles, hasta tal punto que Microsoft creó una librería cuya finalidad era le de crear un estándar en este tipo de controles. En Windows 95 el propio sistema operativo ha incrementado visiblemente los efectos tridimensionales en opciones de menú, botones, etc. También nuestrar aplicaciones Delphi pueden contar con este aspecto, de hecho lo hacen automáticamente a no ser que modifiquemos el valor de la propiedad Ctl3D. Por defecto esta propiedad tiene el valor True, haciendo, por ejemplo, que el fondo de los forms sea gris, y los distintos controles existentes en él aparezcan como esculpidos. Dando el valor False a esta propiedad desactivaremos el efecto tridimensional, de tal forma que el fondo del form será blanco, como el de cualquier ventana. La propiedad Color nos permite modificar este color por defecto, pudiendo elegir entre un color concreto, como pueda ser azul, rojo, negro, etc., o bien un color del sistema, por ejemplo el color de la barra de título d la ventana activa, el color de un botón pulsado, etc. Forms y menúsCualquier form Delphi puede tener asociado un menú de opciones que aparecerá bajo su barra de título. La propiedad encargada de mantener la referencia al menú asociado al form es Menu. De igual forma, podemos asociar un menú emergente a un form, utilizando la propiedad PopupMenu. Etiquetas de ayudaEn Delphi, la creación de estas etiquetas de ayuda es de suma facilidad, lo único que hemos de hacer es asignar la cadena que queremos visualizar a la propiedad Hint del componente, dando además el valor True a la propiedad ShowHint. Estas propiedades las tienen prácticamente todos los controles, incluidos los forms, aunque su uso más habitual está asociado con los botones existentes en las barras o paletas de herramientas. Estado del formEn un momento determinado de la ejecución de un programa, un form que estaba activo, de tal forma que el usuario podía interactuar con ella, puede pasar a estar inactivo o incluso hacerse no visible. El estado del form lo controlaremos básicamente con dos propiedades, Enable y Visible. Ambas pueden tomar los valores True y False, siendo el valor por defecto de las dos True. Estilo del formLa propiedad FormStyle puede contener uno de cuatro valores indicando el estilo del form, que habitualmente es fsNormal. Este estilo normal se corresponde con un form de carácter independiente, que no puede contener otras ventanas en su interior ni ser a su vez contenido en otra ventana. Es posible crear un form que actúe como marco para utilizar múltiples forms relacionados entre sí. Al primero lo denominaremos ventana marco o principal, cuyo estilo será fsMDIForm, mientras que a los distintos forms que existan en su interior les llamaremos ventanas hija, siendo el estilo correspondiente fsMDIChild. El cuarto valor que es posible dar a FormStyle nos permite crear una ventana que no será ocultada cuando otra ventana se active, siepre estará sobre las demás, este estilo es fsStayOnTop. Iconos y cursoresPor defecto, el icono que aparece en la barra de título de un form y con el que se representa el mismo cuando se minimiza, es el mismo icono de la aplicación, a no ser que nosotros establezcamos uno distinto mediante la propiedad Icon. Esta propiedad es en realidad un objeto, con sus propiedades, eventos y métodos. En tiempo de diseño, podemos cargar un icono mediante el editor que aparecerá al pulsar en los puntos suspensivos que aparecen a la derecha. En tiempo de ejecución, necesitaremos como único parámetro el nombre del archivo en que se encuentra el icono. Por defecto, al pasar sobre el área cliente de un form, el cursor del ratón es una flecha, pero podemos cambiar a cualquier otro aspecto modificando el valor de la propiedad Cursor. La enumeración de valores que es posible asignar a Cursor la podemos ver desplegando la lista de esta propiedad en el Inspector de objetos. Estilos de letraLos distintos controles que insertemos en un form pueden utilizar un tipo y estilo de letra de nuestra elección, para lo cual nos serviremos de la propiedad Font, que es en realidad un objeto del tipo TFont. Al modificar esta propiedad del form, generalmente no observamos cambio alguno, ya que los efectos se producirán en el momento en que insertemos algún control, cuya propiedad Font tomará los mismos valores que hayamos asignado a dicha propiedad en el form. Las propiedades con que cuenta un objeto TFont nos permiten seleccionar el tipo de letra, color, tamaño, estilo, etc. Podemos modificar dichas propiedades en tiempo de diseño mediante el Inspector de objetos, así como acceder a ellas en tiempo de ejecución. Estas propiedades son:
Barras de desplazamientoEl uso automático de barras de desplazamiento está controlado por la propiedad AutoScroll, que por defecto tiene el valor True. Las características de las barras de desplazamiento pueden ser alteradas mediante las propiedades HorzScrollBar y VertScrollBar, dos objetos que representan respectivamente a la barra de desplazamiento horizontal y vertical. En el caso de un form, las propiedades de estos objetos toman sus valores automáticamente, dependiendo del tamaño de dicho form. Otras propiedadesEn un form encontraremos asimismo otros también editables en tiempo de diseño. Estas propiedades son:
Controles y componentesPodemos conocer en tiempo de ejecución el número de componentes y controles que existen en un form, mediante las propiedades ComponentCount y ControlCount. Recordemos que un componente es cualquiera de los elementos existentes en un form, mientras que un control es un componente que cuenta con una interfaz, se trata de un elemento visual. Conociendo el número de componentes y controles, podemos acceder a cualquiera de ellos usando las matrices Components y Controls, que son otras dos propiedades del form. Estas matrices contendrán tantos elementos como nos indiquen ComponentCount y ControlCount, respectivamente, siendo la base de los índices el cero. Una vez que accedamos a un elemento de cualquiera de estas dos matrices podemos determinar su tipo, realizar las conversiones necesarias y manipular sus propiedades. Superficie de trabajoUn form de Delphi tiene una correspondencia directa con una ventana Windows, que es habitualmente manipulado por medio de un identificador o handle, que podremos obtener mediante la propiedad Handle. Este identificador podremos usarlo con cualquiera de las funciones Windows que hacen uso de él, como puede ser BitBlt. Un método más simple y recomendable para trabajar sobre un form consiste en usar el valor de la propiedad Canvas, que es un objeto que representa todo el espacio interior de la ventana y que cuenta con una serie de métodos que nos permitirán escribir texto, dibujar, etc. Forms MDIUn form también cuenta con una serie de propiedades que facilitan el trabajo con ventanas MDI, conteniendo ventanas hijas en su interior. Mediante la propiedad MDIChildCount podremos saber el número de ventanas hijas existentes en un determinado momento, dato que nos servirá para acceder a los elementos de la matriz MDIChildren, cada uno de los cuales representa a una ventana hija.
|