Componentes estándar de Delphi


Junto a ellos, el formulario también tiene específicos propiedades, metodos Y eventos, determinado por su significado especial. Algunos de ellos caracterizan el formulario como el objeto principal de la aplicación, digamos, una propiedad, otros caracterizan el formulario como un contenedor de otros componentes, por ejemplo, propiedades y .

El sistema Delphi, al agregar un nuevo formulario a un proyecto, crea automáticamente una instancia de la clase (Form1, Form2, etc.), realizando los cambios apropiados en el archivo del proyecto, por ejemplo, agregando una línea de código:

Puede controlar el proceso de creación automática de formularios editando directamente el archivo del proyecto (no recomendado para programadores sin experiencia) o realizando configuraciones en la ventana de parámetros del proyecto (lista Crear formularios automáticamente en la página Formulario). Si el formulario se transfiere de esta lista a la lista Formularios disponibles formularios de proyecto disponibles, la instrucción para su creación se excluye del archivo del proyecto y el programador debe crear dinámicamente una instancia de este formulario durante la ejecución de la aplicación.

En esta captura de pantalla vemos que Formulario1 se creará cuando se inicie el programa, y Formulario2 deberá crearse dinámicamente cuando se ejecute el programa.

Crear método

Para crear instancias de formularios, use el método (constructor) Crear. La clase de formulario en sí suele estar predefinida cuando se diseña la aplicación, y los archivos de formulario (dfm) y módulo de programa (pas) ya existen para el formulario.

El procedimiento anterior crea un formulario Formulario2, que pertenece al objeto de la aplicación y tiene un título nueva forma.

Eventos de formulario

Cuando crea y utiliza un formulario, se genera lo siguiente: eventos escriba TNotifyEvent, especificado en el orden de aparición:

  1. Al crear;
  2. En espectáculo;
  3. Activar;
  4. En pintura.

Al crear evento

Evento Al crear se genera solo una vez: cuando se crea el formulario, se producen otros eventos cada vez que se muestra, activa y cada vez que se dibuja el formulario, respectivamente.

El controlador de eventos OnCreate generalmente incluye código que establece valores iniciales para las propiedades del formulario, así como sus controles; es decir, realiza la inicialización inicial del formulario además de la configuración establecida durante el desarrollo de la aplicación. Además, el controlador incluye operaciones adicionales que deben ocurrir una vez al crear un formulario, por ejemplo, leer cierta información de un archivo y cargarla en una lista.

A continuación se muestra un ejemplo de un procedimiento que maneja el evento OnCreate de Form2:

Cuando se crea, el formulario recibe un nuevo título, formulario de ejemplo, en el cuadro combinado Cuadro combinado2 cargando datos desde el archivo lista.txt, botón Botón3 está bloqueado y el foco de entrada se establece en el editor Edit1.

Propiedad visible

De todos los formularios creados, Delphi automáticamente hace visible el formulario principal cuando se ejecuta la aplicación, para ello la propiedad Visible de este formulario se establece en Verdadero. Para otros formularios, el valor predeterminado de esta propiedad es Falso y después de iniciar la aplicación no se muestran en la pantalla. Si los formularios se crean manualmente, el programador controla su visualización y ocultación durante el funcionamiento de la aplicación a través de la propiedad Visible. Incluso si un formulario es invisible, sus componentes pueden controlarse, por ejemplo, desde otros formularios.

Los formularios secundarios de una solicitud de varios documentos se vuelven visibles en la pantalla tan pronto como se crean.

En los procedimientos anteriores, al presionar los botones btnShowForm2 Y btnHideForm2, ubicado en Form1, conduce, respectivamente, a mostrar y ocultar Form2.

Mostrar y ocultar métodos

También puede controlar la visibilidad de los formularios en la pantalla utilizando los métodos Espectáculo Y Esconder. El procedimiento Mostrar muestra el formulario en modo no modal, con la propiedad Visible establecida en Verdadero y el formulario en primer plano. El procedimiento Ocultar oculta el formulario estableciendo su propiedad Visible en Falso.

Si la ventana está visible, llamar al método Show trae el formulario al frente y le da el foco de entrada.

Ejemplo de mostrar y ocultar un formulario:

Aquí están las pulsaciones de botones. btnShowForm3 Y btnHideForm3, ubicado en Form1, conduce a la visualización y eliminación de Form3 de la pantalla, respectivamente.

Cuando se muestra un formulario en la pantalla, su propiedad visible se evalúa como True y se genera el evento En el show. En consecuencia, al ocultar un formulario, la propiedad visible se evalúa como False y se genera el evento OnHide.

Eventos OnActivate y OnDeActivate

Cuando un formulario recibe el foco de entrada, por ejemplo cuando se presiona un botón del mouse en un área del formulario, se activa y se genera el evento. Activar, y cuando se pierde el foco, un evento OnDeActivate.

Evento en pintura

Evento En pintura Se genera cuando es necesario volver a dibujar el formulario, por ejemplo, al activar el formulario, si antes esa parte del mismo estaba cubierta por otras ventanas.

Método de cierre: cierra el formulario.

Para cerrar el formulario utilice el método cerca, que lo elimina de la pantalla si es posible. Si se cierra el formulario principal, la aplicación deja de funcionar.

En el procedimiento anterior, el botón btnCerrar cierra el formulario Formulario2. La forma se vuelve invisible, pero no se destruye. Es útil establecer un título apropiado para este botón (la propiedad Caption), por ejemplo, Cerca.

El procedimiento Cerrar no destruye la instancia creada del formulario y el formulario se puede volver a llamar a la pantalla, en particular utilizando los métodos Espectáculo o MostrarModal.

Destruir un formulario (Liberar, Liberar o Destruir)

La destrucción de un formulario se produce mediante métodos. Liberar, Gratis o Destruir, después de lo cual resulta imposible trabajar con este formulario, y cualquier intento de acceder a él o a sus componentes provocará una excepción (error). La necesidad de destruir un formulario puede surgir al diseñar salvapantallas o al desarrollar aplicaciones grandes que requieren ahorrar RAM. El método gratuito se considera el método preferido para eliminar un formulario porque primero verifica si se puede eliminar. Por ejemplo, en el procedimiento

En el procedimiento dado, el botón btnDestroy destruye la forma Formulario3. Es útil darle a este botón un título apropiado, por ejemplo Borrar.

Eventos al cerrar y destruir un formulario

Cuando se cierra y destruye un formulario, se generan los siguientes eventos, enumerados en el orden en que ocurren:

  1. OnDeActivate;
  2. OnHide;

Evento OnCloseQuery

Se produce un evento de tipo TcloseQueryEvent en respuesta a un intento de cerrar un formulario. El controlador de eventos recibe una variable de atributo booleano CanClose, que determina si el formulario se puede cerrar. De forma predeterminada, esta variable está configurada en Verdadero y el formulario se puede cerrar. Si establece el parámetro CanClose en False, el formulario permanece abierto. Esta función debe usarse, por ejemplo, para confirmar que una ventana está cerrada o para verificar si la información que se está editando está guardada en el disco. El evento OnCloseQuery siempre se llama, independientemente de cómo se cierre el formulario.

A continuación se muestra un ejemplo de cómo cerrar un formulario:

Aquí al cerrar el formulario Formulario2 se emite una solicitud para confirmar la operación, que es un cuadro de diálogo modal con texto y dos botones: Y No. Al hacer clic en el botón Sí, se cierra el formulario; al hacer clic en el botón No, no se cierra el formulario.

Evento al cerrar

Un evento de tipo TCioseEvent ocurre inmediatamente antes de que se cierre el formulario. Normalmente se utiliza para cambiar el comportamiento predeterminado de un formulario cuando se cierra. Para hacer esto, se pasa una variable al controlador de eventos. Acción escriba TCloseAction, que puede tomar los siguientes valores:

  • puedeNinguno(el formulario no se puede cerrar);
  • caOcultar(el formulario se vuelve invisible);
  • caGratis(el formulario se destruye y la memoria asociada a él se libera);
  • caMinimizar(la ventana del formulario está minimizada): valor predeterminado para los formularios MDI.

Al cerrar una ventana usando Cerca la variable Acción tiene por defecto caHide y el formulario se vuelve invisible. Cuando se destruye un formulario, por ejemplo usando el método Destroy, la variable Acción tiene por defecto caFree y el formulario se destruye.

El evento ocurre cuando se cierra un formulario al hacer clic en el botón de cerrar del menú del sistema o al llamar al método Cerrar. Cuando se cierra el formulario principal de la aplicación, todas las demás ventanas se cierran sin llamar al evento OnClose.

En el procedimiento anterior al cerrar el formulario Formulario2 Se comprueba el signo de modificación del contenido del editor Memo1. Si se ha cambiado la información en Memo1, el formulario no se cierra.

evento onDestroy

Un evento de tipo TNotifyEvent ocurre justo antes de que se destruya el formulario y generalmente se usa para liberar recursos.

evento onResize

Siempre que el tamaño del formulario cambia mientras la aplicación se está ejecutando, se genera un evento de tipo TNotifyEvent. El controlador de este evento puede contener código que, por ejemplo, cambia el tamaño de los controles de ventana que no tienen una propiedad Align.

    procedimiento TForml. FormResize(Remitente: TObject);

    comenzar

    // Establece el tamaño y la posición de la cuadrícula de filas

    StringGrid1. Izquierda: = 10;

    StringGrid1. Arriba := 5 ;

    StringGrid1. Ancho:=Forma1. Ancho de cliente � 20 ;

    StringGrid1. Altura:=Forma1. AlturaCliente � 15 ;

    Botón1. Altura ;

    // Establecer la posición del botón

    Botón1. Izquierda:=Formulario1. ClientWidth � 10� Botón1. Ancho ;

    Botón1. Arriba := Formulario1. Altura del cliente - 5 - Botón1. Altura ;

fin ;

  • Form1 contiene dos componentes: StringGrid1 y Button1. Estos componentes están organizados en la forma siguiente:
  • la cuadrícula StringGrid1 ocupa todo el ancho del área del cliente de Form3, los márgenes izquierdo y derecho son 10 píxeles;
  • Button1 (Cerrar) está alineado con el borde derecho de StringGrid1;

Las distancias entre la cuadrícula, el botón y los bordes superior e inferior del formulario son de 5 píxeles.

Al cambiar el tamaño de Form1, se recalculan los parámetros que especifican el tamaño y la posición de la cuadrícula de filas, así como la posición del botón.

Propiedad FormStyle - estilo de formulario

  • El estilo del formulario está determinado por una propiedad de tipo TFormstyle, que toma los siguientes valores: fsNormal
  • (estilo estándar utilizado para la mayoría de las ventanas, incluidas las de diálogo); fsMDiNiño
  • (formulario secundario en una solicitud de varios documentos); fsMDiForm
  • (formulario principal en una solicitud de documentos múltiples);(un formulario que, después del inicio, siempre se muestra encima de otras ventanas): generalmente se usa cuando se muestra información del sistema o el panel de información del programa.

El formulario puede cambiar de estilo dinámicamente, durante la ejecución del programa, por ejemplo, al seleccionar un elemento del menú. Cuando el formulario cambia de estilo, se activa el evento OnShow.

Un ejemplo de cómo cambiar dinámicamente el estilo de un formulario:

Al seleccionar un elemento del menú mnuArriba el formulario cambia su estilo entre valores El estilo del formulario está determinado por una propiedad de tipo TFormstyle, que toma los siguientes valores: Y (formulario principal en una solicitud de documentos múltiples);. El cambio de estilo se muestra gráficamente con una marca de verificación en el título de este elemento del menú.

Propiedad BorderStyle: propiedades de borde de formulario

Cada formulario tiene un cuadro delimitador. La apariencia y el comportamiento del borde están determinados por una propiedad de tipo TFormBorderstyle. Puede tomar los siguientes valores:

  • bsDiálogo(formulario de diálogo);
  • bsSingle(formulario con dimensiones inmutables);
  • bsNinguno(el formulario no tiene un marco o título visible y no se puede cambiar su tamaño): se utiliza a menudo para salvapantallas;
  • bsTamaño(formato redimensionable normal): de forma predeterminada, tiene una barra de título y puede contener cualquier conjunto de botones;
  • bsVentana de herramientas(forma de barra de herramientas);
  • bsSizeToolwin(forma de barra de herramientas redimensionable).

La diferencia visual entre los formularios de diálogo y normales es que un formulario de diálogo solo puede contener botones de cierre y ayuda en su título. Además, el usuario no puede cambiar el tamaño del formulario de diálogo.

La imposibilidad de cambiar el tamaño de los formularios de algunos estilos se aplica solo al usuario: no puede usar el mouse para mover el borde del formulario en una dirección u otra. Mediante programación, al ejecutar una aplicación para un formulario de cualquier estilo, puede establecer cualquier tamaño de ventana permitido, así como cambiarlos.

Un ejemplo de cambio de tamaño programático de un formulario:

Cuando se presiona el botón btnResizeForm El ancho de Form2 aumenta en 100 píxeles incluso si su propiedad BorderStyle está establecida en bsDialog, bsSingle o bsNone.

método mostrarModal

Si configura el estilo de diálogo del formulario, no se vuelve modal y permite al usuario navegar a otras ventanas de la aplicación. Para iniciar un formulario, incluido cualquier cuadro de diálogo, en modo modal, utilice el método MostrarModal. Así, el estilo determina la apariencia de una forma, pero no su comportamiento.

Propiedad BorderIcons

Hay 4 tipos de botones que se pueden mostrar en el área de título. El conjunto de botones que se está implementando define una propiedad de tipo TBorderIcons, que puede tomar combinaciones de los siguientes valores:

  • blMenúSistema(la ventana tiene un menú del sistema y puede contener botones de menú del sistema);
  • blMinimizar(la ventana contiene un botón de minimizar);
  • blMaximizar(la ventana contiene un botón maximizar/restaurar);
  • blAyuda(la ventana contiene un botón de ayuda que muestra un signo de interrogación y muestra ayuda contextual).

El menú del sistema es un conjunto de comandos comunes a todas las ventanas de Windows, por ejemplo, Colapsar o Cerca. Si una ventana tiene un menú de sistema, se muestra un icono de aplicación en el área de título a la izquierda, al hacer clic en ella aparecen los comandos de este menú, y en el área de título a la derecha hay un botón para cerrar el formulario. (ver captura de pantalla).

Los diferentes valores de propiedad no son independientes entre sí. Entonces, si no hay un menú del sistema, no se muestra ni un solo botón. Si hay botones para expandir y contraer, el botón de ayuda no aparece. La aparición de botones también depende del estilo del formulario. Por ejemplo, mostrar botones de expandir y contraer solo es posible para formas de barra de herramientas regulares y de tamaño variable.

Normalmente, el estilo del formulario y el conjunto de botones del encabezado se configuran durante el desarrollo de la aplicación en la ventana del Inspector de objetos. En este caso, en el formulario diseñado, el marco habitual y tres botones (expandir, contraer y cerrar el formulario) siempre están visibles, independientemente del valor de las propiedades y. El estilo de formulario especificado y el conjunto de botones se vuelven visibles cuando se ejecuta el programa.

El formulario incluye cliente Y no clienteáreas. Área de no clientes ocupado por el marco, título y barra de menú principal. Normalmente, Windows dibuja esta área y el programador no la toca. Si es necesario, el programador puede interceptar y procesar el mensaje en el área no cliente. WM_NCPintura.

Propiedades ClientWidth y ClientHeight

El área del cliente normalmente alberga varios controles, muestra texto o muestra gráficos. Similar a como las propiedades Ancho Y Altura determinar las dimensiones de toda la forma, propiedades Ancho del cliente Y Altura del cliente Los tipos de números enteros especifican el ancho y el alto (en píxeles) de la parte del cliente del formulario.

En el procedimiento anterior, los valores de tamaño del área del cliente se muestran en el encabezado del formulario.

Normalmente, el formulario se arrastra con el mouse, cuyo puntero se ubica en cualquier lugar del área del título. Si es necesario, puede mover el formulario colocando el puntero en su área de cliente, lo que requiere describir las operaciones correspondientes mediante programación. Una forma es interceptar el mensaje del sistema. WM_NCHitTest. Se crea un procedimiento para esto. FormularioMover, que analiza dónde está el puntero del mouse en el formulario cuando se hace clic en un botón. El código de ubicación del puntero del mouse está contenido en el campo Resultado mensaje del sistema de tipo TMessage. Si el valor del Resultado es 1, que corresponde a un clic del mouse en el área del cliente, entonces al campo Resultado se le asigna un nuevo valor de 2, simulando que el puntero del mouse está en el área del título. En procedimiento FormularioMover primera instrucción heredado llama a un controlador predefinido para el evento interceptado.

Para indicarle a Delphi que el procedimiento FormMove es un controlador para el evento WM_NCHitTest, se declara en la clase de formulario TForm1 usando una sintaxis especial que incluye la palabra clave mensaje. Como controlador de mensajes del sistema, el procedimiento contiene un parámetro de tipo TMessage.

Nombres MoverForm Y mensaje El procedimiento y sus parámetros están sujetos a cambios.

Propiedad del menú

El menú que muestra el formulario está especificado por la propiedad. Menú escriba TMenú principal. Al desarrollar una aplicación, colocar un componente Menú principal El menú principal del formulario hace que el valor de MainMenu1 se asigne automáticamente a la propiedad Menú. Esta es la forma más sencilla de vincularse al menú principal. Si durante la ejecución de la aplicación un formulario necesita mostrar diferentes menús, entonces a través de la propiedad Menú puede especificar otro menú principal, por ejemplo, de la siguiente manera: Form1.Menu:= MainMenu2;

Propiedad de icono



Cada formulario muestra un icono en el lado izquierdo del área del título, determinado por la propiedad Icono Tipo tico. Si el formulario no es el principal de la aplicación, este icono se muestra cuando el formulario está minimizado. Para cualquier propiedad de forma Icono se puede configurar usando inspectores de objetos o dinámicamente (mientras la aplicación se está ejecutando). Si no se especifica un icono, el formulario utiliza el icono especificado en la propiedad Icono Objeto de aplicación. Este último también se muestra cuando el icono del formulario principal de la aplicación se minimiza y se muestra en la barra de tareas de Windows.

En el procedimiento anterior, el icono se carga dinámicamente desde el archivo Imagen1.ico al crear un formulario Formulario1.

Propiedad de posición

La ubicación y el tamaño del formulario cuando se muestra está determinado por una propiedad de tipo TPosition. Puede tomar los siguientes valores:

  • poDiseñado(el formulario se muestra en la posición y con las dimensiones que se establecieron durante su diseño): el valor predeterminado. La posición y las dimensiones del formulario están determinadas por las propiedades. Izquierda, Arriba, Ancho Y Altura. Si la aplicación se ejecuta en un monitor con una resolución inferior a la que se desarrolló, parte del formulario puede sobresalir de la pantalla;
  • poScreenCenter(el formulario se muestra en el centro de la pantalla, su altura y ancho (las propiedades de altura y ancho) no cambian);
  • poPor defecto(Windows determina automáticamente la posición inicial y las dimensiones del formulario): con este valor, el programador no tiene control sobre estos parámetros, por lo que no está permitido para formularios en aplicaciones de múltiples documentos;
  • poDefaultPosOnly(Windows determina la posición inicial del formulario, sus dimensiones no cambian);
  • poDefaultSizeOnly(Windows determina el ancho y alto inicial del formulario y coloca el formulario en la posición determinada en el momento del diseño);
  • PoDesktopCenter(el formulario se muestra en el centro de la pantalla, su alto y ancho no cambian);
  • PoMainFormCenter(el formulario se muestra en el centro del formulario principal de la aplicación, su altura y ancho no cambian): este valor se usa para formularios secundarios, cuando se aplica al formulario principal actúa como el valor de poScreenCenter;
  • PoOwnerFormCenter(el formulario se muestra en el centro del formulario, que es su propietario, la altura y el ancho del formulario no cambian) - si el propietario no está especificado para el formulario (la propiedad Propietario), entonces este valor es similar al valor de poMainFormCenter.

La aplicación puede recordar la ubicación y el tamaño de los formularios y mostrarlos correctamente en la pantalla la próxima vez que se ejecute. Para hacer esto, el programador debe escribir los datos apropiados en el archivo de inicialización de la aplicación o en el registro del sistema de Windows, y cuando la aplicación se ejecute posteriormente, leer estos datos y configurarlos para los formularios.

Propiedad activa

Propiedad Activo El tipo booleano le permite determinar la actividad del formulario. Sólo puede haber un formulario activo a la vez y su título está resaltado en un color especial (normalmente azul). Si la propiedad Activa es Verdadera, entonces el formulario está activo (está en el foco de entrada); si es Falsa, entonces está inactivo. Esta propiedad es legible durante la ejecución del programa. Si desea activar el formulario mediante programación, debe utilizar la propiedad o método Espectáculo(mostrarModal).

Propiedad ChildActiveForm

En una aplicación de varios documentos, la ventana principal no puede estar activa independientemente del color del título. Para determinar la ventana secundaria activa de una aplicación de múltiples documentos, use la propiedad Formulario activo infantil escriba TForm del formulario principal.

    El procedimiento TForm1CheckFormActive del módulo de formulario principal realiza una verificación de actividad para los dos formularios de la aplicación y muestra la información correspondiente en los encabezados del formulario.

    Propiedad de estado de ventana

    Una propiedad de tipo TWindowsstate determina el estado de visualización del formulario y puede tomar uno de tres valores:

    • wsNormal (estado normal): predeterminado;
    • wsMinimized(colapsado);
    • wsMaximized (ampliado).

    Botones btnMiniForm Y btnNormalForm en el formulario Form1 se contrae y el estado normal del formulario Form2 se restaura en consecuencia.

    El formulario para el cual se cambia el estado de visualización en la pantalla primero debe crearse usando los métodos Crear formulario o Crear. Si no se crea el formulario, al acceder a él se generará una excepción, a pesar de que la variable del formulario esté declarada en el módulo. Si se crea un formulario pero no se muestra en la pantalla, se producen cambios en su estado (propiedades del estado de la ventana), pero el usuario no ve esto hasta que el formulario se muestra en la pantalla.

    Propiedad ActiveControl

    Al ser un contenedor, el formulario contiene otros controles. Los controles de ventana (descendientes de la clase TWinControl) pueden recibir el foco de entrada. Una propiedad de tipo TWinControl determina qué elemento del formulario tiene el foco. Para seleccionar un elemento que tiene foco de entrada (el elemento activo), puede establecer esta propiedad en el valor deseado al ejecutar el programa:

    La misma operación se realiza mediante el método. Establecer enfoque que establece el foco de entrada para el control de ventana:

    Propiedad de desplazamiento automático

    Cuando el tamaño de la ventana no es lo suficientemente grande para mostrar todos los componentes de la interfaz contenidos en el formulario, pueden aparecer barras de desplazamiento en el formulario. La propiedad AutoScroll de tipo booleano determina si aparecen automáticamente. Si la propiedad AutoScroll es True (valor predeterminado), las barras de desplazamiento aparecen y desaparecen automáticamente, sin ninguna acción del programador. La necesidad de barras de desplazamiento puede surgir, por ejemplo, si el usuario reduce el tamaño del formulario de modo que no todos los controles sean completamente visibles. Si la propiedad AutoScroll está configurada en False, entonces el programador implementa el control de la visualización de información manualmente a través de las propiedades. Barra de desplazamiento Horz(desplazamiento horizontal) y Barra de desplazamiento vertical(desplazamiento vertical) escriba TControlScrollBar del formulario.

    Método ScrollInView

    Para controlar las barras de desplazamiento mediante programación, puede utilizar el método Desplazamiento en vista. El procedimiento ScrollInView (AControl: TControl) cambia automáticamente las posiciones de las barras de desplazamiento para que el control especificado por AControl sea visible en el área de visualización.

    Propiedad KeyPreview

    Una propiedad booleana determina si el formulario manejará los eventos del teclado antes de que los controles del formulario los manejen. Si la propiedad es False (el valor predeterminado), entonces los eventos del teclado van al control activo (aquellos con foco de entrada). Cuando establece la propiedad KeyPreview en True, el formulario es el primero en recibir mensajes de pulsación de teclas y puede responder a ellos, lo que normalmente se usa para manejar combinaciones de teclas independientemente de si los controles del formulario están activos.

    En el procedimiento anterior el formulario Formulario1 maneja las pulsaciones de teclas alfanuméricas, mostrando el carácter ingresado en un cuadro de diálogo Información.

    El formulario no puede soportar la pulsación de teclas<ТаЬ>debido a su propósito especial.

    Propiedad MDichildCount y método Cascade

    El formulario tiene una fila. propiedades Y metodos, Por ejemplo Propiedad MDichildCount Y Método en cascada, diseñado para organizar aplicaciones de múltiples documentos.

Acción- define un objeto TAcción. Este objeto se utiliza para vincular rápidamente acciones a componentes, especialmente elementos de menú y barras de herramientas. Pero también puede estar ligado a la forma. Para la gestión TAcción los editores sirven TActionList de la pagina Estándar Y Administrador de acciones de la pagina Adicional.

Control Activo- define el elemento que actualmente tiene foco de entrada. Si selecciona un objeto durante el tiempo de diseño, cuando se inicie la aplicación, este objeto tendrá el foco de entrada. La propiedad también puede ser útil durante el tiempo de ejecución: puede averiguar qué objeto "mantiene" el foco en este momento y también puede mover el foco a cualquiera de los objetos. Ejemplo: coloquemos 2 botones en el formulario: Botón1 y Botón2, así como Temporizador(página Sistema). Habiendo seleccionado el elemento Timer1, haga doble clic en el Inspector de objetos frente a la inscripción OnTimer en la pestaña Eventos, es decir Creemos un controlador de eventos y escribamos lo siguiente: Control Activo:=Botón2; Ahora, cuando ejecute el programa, cada segundo el foco se moverá al Botón2.

Alinear- determina la alineación del formulario en la pantalla. La propiedad toma uno de los siguientes valores:

  • alBottom - a lo largo del borde inferior;
  • alClient: toda el área de usuario (cliente);
  • alCustom: la alineación se determina llamando a un método en el objeto principal;
  • alLeft - a la izquierda;
  • alNinguno: sin alineación;
  • bien - a la derecha;
  • alTop - a lo largo del borde superior.

AlfaBlend- activa/desactiva la transparencia del formulario.

Valor de mezcla alfa- establece el grado de opacidad del formulario: 0 - el formulario es completamente invisible, 255 - completamente visible. La transparencia solo se activa cuando la propiedad AlphaBlend está establecida en Verdadero.

Anclas- define las direcciones en las que los componentes se "unen" al formulario. Ejemplo: si establece los valores akLeft y akRight de esta propiedad en True para un formulario y hace lo mismo con un botón, cuando cambie el ancho del formulario, el tamaño del botón (ancho) también cambiará.

Desplazamiento automático- habilita la aparición automática de barras de desplazamiento en el formulario cuando el tamaño del formulario no es suficiente para mostrar todos los elementos.

Tamaño automático- permite el cambio automático de tamaño del formulario según las posiciones de los elementos colocados en él.

Modo BiDi- define la visualización bidireccional de un elemento. En algunas lenguas la escritura no se realiza de izquierda a derecha, sino al revés. Esta propiedad se crea exactamente para este propósito.

Iconos De Frontera- define un conjunto de botones que se muestran en el título de la ventana:

  • biSystemMenu, el único elemento que no es un botón, es responsable del menú del sistema de ventanas, al que se accede mediante la combinación de teclas + [Espacio].
  • biMinimize: botón para minimizar (minimizar) la ventana;
  • biMaximize: botón para maximizar la ventana;
  • biHelp - botón de ayuda.

Si al menos uno de los botones minimizar y maximizar está habilitado, independientemente del estado del otro, se muestran ambos (pero el segundo, naturalmente, está inactivo). Si ambos están desactivados, no se muestran en absoluto. Esto es independiente de Delphi: así es como está diseñado el sistema operativo Windows.

Estilo de borde- define el comportamiento de los bordes de las ventanas y el tipo general de ventana:

  • bsDialog - cuadro de diálogo (de los botones - sólo "Cerrar", no hay ningún icono en el título de la ventana);
  • bsNone: una “pizarra en blanco” (sin bordes ni título en la ventana); generalmente se usa para crear protectores de pantalla durante el inicio del programa;
  • bsSingle: una ventana normal, pero con prohibición de cambiar el tamaño;
  • bsSizeable - ventana normal (predeterminada): se puede cambiar el tamaño del formulario;
  • bsSizeToolWin: ventana simplificada con un título más pequeño;
  • bsToolWindow: una ventana simplificada con una barra de título más pequeña sin posibilidad de cambiar el tamaño.

Ancho del borde- ancho del borde de la ventana en píxeles. El borde es invisible y se encuentra en el área de usuario del formulario.

Subtítulo- texto del título del formulario.

Altura del cliente, Ancho del cliente- el tamaño de la parte del cliente (usuario) del formulario, es decir aquel en el que se encuentran los componentes.

Color- color del formulario.

Restricciones- define las dimensiones mínimas y máximas de la altura y el ancho del formulario en píxeles. 0 - cualquier valor, es decir sin restricciones.

Ctrl3D- la propiedad determina la apariencia 3D del formulario. Cuando está apagado, la imagen es "plana".

Cursor- el cursor del ratón en el momento en que se encuentra sobre el formulario.

Monitor predeterminado- determina en qué monitor aparecerá el formulario. Tiene sentido utilizar esta propiedad sólo si hay más de un monitor (por ejemplo, si hay varias pantallas).

MuelleSitio, ArrastrandoRey Y Modo de arrastre- determinar el comportamiento del formulario al realizar operaciones de arrastrar y soltar.

Activado- responsable de la actividad general del formulario. Si se establece en False, el formulario no está disponible.

Fuente- fuente utilizada en el formulario.

Estilo de formulario- el estilo del formulario o su comportamiento en una aplicación MDI (una aplicación de ventanas múltiples donde los formularios adicionales se encuentran "dentro" del formulario principal). Valores:

  • fsNormal: forma normal (valor predeterminado);
  • fsMDIChild: forma secundaria (subordinada) de la solicitud MDI;
  • fsMDIForm: el formulario principal de la aplicación MDI;
  • fsStayOnTop: el formulario está encima de todas las ventanas de la pantalla.

Altura- altura del formulario en píxeles. A diferencia de ClientWidth, es la altura teniendo en cuenta el título y los bordes del formulario.

Contexto de ayuda, Archivo de ayuda, AyudaPalabra clave, Tipo de ayuda- propiedades para vincular el formulario con un archivo de ayuda en el formato *.hlp.

Creando una aplicación en Delphi

El entorno de programación Delphi es una aplicación del sistema operativo Windows para crear programas en el lenguaje de alto nivel Object Pascal. El entorno tiene una interfaz de ventana. Componentes principales de la interfaz:

1. Menú principal

El menú principal proporciona acceso a todas las funciones del entorno de programación. Se puede acceder a los elementos del menú usando el puntero del mouse o usando una tecla y un método abreviado de teclado.

2. Diseñador de formularios

El diseñador de formularios está diseñado para el desarrollo visual de la interfaz de la aplicación. Muestra la apariencia visual de las ventanas del programa. El desarrollador puede colocar componentes de la paleta de componentes en el formulario, editar su tamaño, seleccionar componentes ya colocados y editarlos en el inspector de objetos.

3. Ventana del editor de código fuente del programa

Las declaraciones del programa se escriben en la ventana de origen del programa.

4. Paleta de componentes

La paleta de componentes le permite seleccionar los objetos necesarios para colocarlos en el formulario. La paleta de componentes utiliza agrupaciones de componentes página por página según sus funciones. Cada grupo separado se encuentra en su propia pestaña.

5. Inspector de objetos

El Inspector de objetos le permite ver y editar información sobre un objeto seleccionado en el Diseñador de formularios. El inspector de objetos consta de dos páginas: una lista de propiedades del objeto (Propiedades) y una lista de controladores de eventos de objetos (Eventos).

6. Ventana de botones de acceso rápido

La ventana de botones de acceso rápido duplica los elementos del menú utilizados con más frecuencia.

Un proyecto de aplicación Delphi consta de al menos los siguientes archivos:

1. El archivo (programa) principal del proyecto, con la extensión .dpr. Generado automáticamente por Delphi y contiene inicialización de aplicaciones, inicio del administrador de mensajes de aplicaciones y desinicialización de aplicaciones.

2. Archivo de recursos del proyecto, con la extensión .res. Contiene el icono de la aplicación. Creado automáticamente.

3. Archivo del módulo de formulario, que contiene una descripción de la clase de formulario de ventana y el código de subrutinas: controladores de eventos para objetos de formulario. Extensión.pas. Creado automáticamente. Al agregar objetos en el diseñador de formularios y controladores de eventos de objetos en el Inspector de objetos, Delphi genera automáticamente el código de programa necesario.

Cuando se inicia el entorno Delphi, crea automáticamente un proyecto Project1.dpr, que contiene un formulario llamado Form1 y un módulo de formulario llamado Unit1.pas/Unit1.dfm.

El resultado de compilar el proyecto son los siguientes archivos:

1. Módulos compilados, con extensión *.dcu.

2. Un archivo de aplicación ejecutable con el mismo nombre que el archivo del proyecto principal y la extensión .exe.

Por lo tanto, crear un programa en Delphi se reduce a "aplicar" componentes a un formulario y configurar la interacción entre ellos mediante:

- cambios de valor propiedades estos componentes

- escribir reacciones a eventos.

Una propiedad es un atributo importante de un componente. Para un programador, una propiedad parece un campo simple de alguna estructura que contiene algún valor. Sin embargo, a diferencia de un campo "justo", cualquier cambio en el valor de alguna propiedad de cualquier componente conduce inmediatamente a un cambio en la representación visual de este componente, ya que la propiedad encapsula contiene métodos (acciones) asociados con la lectura y escritura de este campo que, a su vez, incluyen el redibujado necesario.

Las propiedades tienen dos propósitos principales. Primero, definen la apariencia de un formulario o componente. Y en segundo lugar, las propiedades determinan el comportamiento de una forma o componente.

Existen tres tipos de propiedades, según su estructura interna:

- propiedades cuyos valores son números o cadenas. Por ejemplo, las propiedades Izquierda y Superior aceptan valores enteros que especifican la posición de la esquina superior izquierda de un componente o formulario. Las propiedades Título y Nombre son cadenas y definen el título y el nombre del componente o formulario.

- propiedades que pueden tomar valores de un conjunto predefinido (lista). El ejemplo más sencillo es una propiedad de tipo booleano, que puede ser Verdadero o Falso.

- propiedades que admiten valores (u objetos) anidados. El Inspector de objetos muestra un "..." a la izquierda del nombre de dichas propiedades. Hay dos tipos de tales propiedades: conjuntos Y valores combinados. El Inspector de objetos muestra conjuntos entre corchetes. Si el conjunto está vacío, se muestra como . La configuración de las propiedades de conjuntos anidados suele ser booleana. El ejemplo más común de dicha propiedad es la propiedad Estilo, que tiene un conjunto anidado de valores booleanos. Los valores combinados aparecen en el Inspector de objetos como una colección de valores, cada uno con su propio tipo de datos. Algunas propiedades, por ejemplo Fuente, tienen la capacidad de abrir un cuadro de diálogo para cambiar sus valores. Para hacer esto, simplemente haga clic en el pequeño botón con tres puntos en el lado derecho de la línea del Inspector de objetos que muestra esta propiedad.

Delphi le permite manipular fácilmente las propiedades de los componentes tanto en tiempo de diseño como en tiempo de ejecución.

En el modo de diseño, las propiedades se manipulan utilizando el Diseñador de formularios o la página Propiedades del Inspector de objetos.

Activo: la propiedad tiene un tipo booleano y le permite abrir o cerrar un conjunto de datos si la propiedad está establecida en Verdadero o Falso, respectivamente. Dependiendo de la propiedad CanModify, los datos solo se pueden ver o también se pueden editar.

AutoCalcFields: propiedad de tipo booleano. Si se establece en False, el evento OnCalcFields se suprimirá y los campos calculados no se procesarán. True habilita el cálculo de campos calculados.

Bof: la propiedad es de tipo booleano y contiene Verdadero si el cursor está en el primer registro del conjunto de datos y Falso en caso contrario. Bof contiene True cuando:

■ Se abre un conjunto de datos que no está vacío.

■ Al llamar a la Primera.

■ Al llamar al método Prior, si el cursor está en el primer registro del conjunto de datos.

Marcador: la propiedad le permite establecer un marcador en el registro actual del conjunto de datos. El número de marcadores puede ser ilimitado; el trabajo con marcadores se analizó en el curso "Introducción a la programación en Delphi". La propiedad es de tipo TBookmarkStr.

CanModify: la propiedad es de tipo booleano e indica si el conjunto de datos resultante se puede editar o es de solo lectura. Cuando abre un conjunto de datos, se le solicita automáticamente acceso de edición. Dicho acceso puede denegarse por varios motivos, por ejemplo, otro usuario abre la tabla en modo exclusivo. En este caso, CanModify está configurado en False y solo podemos ver los datos, pero no realizar cambios.

Nombre de base de datos: propiedad de tipo cadena, contiene la dirección de la base de datos o su alias. Sin embargo, esto es cierto para los conjuntos de datos de BDE. Si está utilizando el motor ADO, esta propiedad no está disponible; en su lugar, debe usar la propiedad Connection o ConnectionString para conectarse a la base de datos.

Oa1a8oirse: la propiedad se utiliza en conjuntos de datos para especificar un conjunto detallado de datos en una relación de uno a muchos.

DefaultFields: propiedad de tipo booleano, contiene Verdadero si el programador no ha creado ningún campo en el editor de campos del conjunto de datos. En este caso, todos los campos se determinan automáticamente de acuerdo con esta tabla.

Eof: propiedad opuesta de Bof. Tiene un tipo booleano y tiene el valor Verdadero en los casos en que:

■ Hay un conjunto de datos vacío abierto.

■ Se llama al último método.

■ Se llama al método Next si el puntero está en el último registro de la tabla.

■ Cuando llama al método SetRange en un conjunto o rango de datos vacío.

FieldCount: propiedad de tipo entero que contiene el número de campos en el conjunto de datos.

Campos: la propiedad le permite obtener el valor del campo deseado por su índice. Los campos están indexados desde cero. Por ejemplo, puedes obtener el valor del séptimo campo en un conjunto de datos como este:

Editl.Text:= CustTable.Fields.Value;

FieldValues ​​​​: la propiedad le permite obtener el valor del campo deseado por su nombre. Esta propiedad es la predeterminada, por lo que no es necesario especificarla. Ejemplos:

Editl.Text:= CustTable.FieldValues["Orden"]; Editl.Text:= CustTable["Pedido"];

Filtro: propiedad de tipo cadena. Contiene una cadena que define las reglas para filtrar el conjunto de datos.

Filtrado: propiedad de tipo booleano. Si la propiedad Filter tiene una cadena que especifica el orden de filtrado, establecer la propiedad Filtered en True hace que se filtre el conjunto de datos. Establecer esta propiedad en False deshabilita el filtrado.

FilterOptions: la propiedad es de tipo TFilterOptions y se utiliza para campos de cadena o caracteres. La propiedad se puede establecer en foCaselnSENSITIVE o foNoPartialCompare. En el primer caso, el filtrado tendrá en cuenta el caso de las letras, en el segundo, solo se tendrá en cuenta la coincidencia exacta con el patrón.

Modificado: una propiedad muy importante del tipo booleano. Contiene True si el conjunto de datos ha sido modificado, False en caso contrario. A menudo se usa para verificaciones: si un conjunto de datos ha cambiado, llame al método Post para guardar los cambios.

RecNo y RecordCount: propiedades de un tipo entero. El primero contiene el número del registro actual en el conjunto de datos, el segundo, el número total de registros.

Estado: una propiedad muy importante que define el estado del conjunto de datos. Puede tener los siguientes significados:

■ dsInactivate: el conjunto de datos está cerrado.

■ dsBrowse: modo de navegación.

■ dsEdit: modo de edición.

■ dsInsert: modo de inserción.

■ dsSetKey: busca una entrada.

■ dsCalcFields: estado de instalación de los campos calculados.

■ dsFilter: modo de filtrado de registros.

■ dsNewValue: modo para actualizar la propiedad TField.NewValue.

■ dsOldValue: modo para actualizar la propiedad TField.OldValue.

■ dsCurValue: modo para actualizar la propiedad TField.CurValue.

■ dsBlockRead: estado de lectura de un bloque de registros.

■ dsInternalCalc: actualización de campos cuya propiedad FieldKind coincida con el valor de fklnternalCalc.

Eremin Andrei

¿Qué son las propiedades? ¿Qué son las propiedades en la vida real? Por ejemplo, en física es el punto de fusión, el punto de ebullición, la viscosidad, la densidad, la solubilidad, etc. Similar a la programación orientada a objetos. Cada objeto tiene algunas propiedades. Las propiedades son responsables de la apariencia de un objeto o de su comportamiento en el programa durante su ejecución. Considere las propiedades en Delfos.

Dónde encontrar propiedades

Cada componente colocado en el formulario se refleja en el Inspector de objetos. Intente, por ejemplo, colocar un campo de texto TButton y TEdit en un formulario y seleccionar un objeto por turno y luego el otro, mientras observa el Inspector de objetos. Notarás que el contenido de su ventana cambia. Esto se debe al hecho de que cada objeto tiene sus propias propiedades. Un objeto puede tener una propiedad, pero otro puede no tenerla. Por ejemplo, un campo de entrada (TEdit) tiene una propiedad ReadOnly, que es responsable de la capacidad de cambiar el texto en este campo. Es completamente lógico que el botón (TButton) no tenga ni pueda tener esta propiedad.

Cómo se crean los programas

Para aprender a crear programas, primero debe comprender los principios básicos de su creación. Detengámonos brevemente en esto. Entonces, ya aprendió cómo colocar componentes en un formulario, administrarlos y ver propiedades. Colocar componentes en un formulario es una de las primeras etapas del desarrollo del programa. Sin embargo, simplemente colocando los componentes, no se realizará ninguna acción: se puede hacer clic en el botón, pero no sucederá nada. Puede ingresar texto en el campo de entrada, pero este texto no se enviará a ninguna parte ni se procesará de ninguna manera. Por tanto, un paso completamente lógico es configurar las interacciones entre componentes. Algunas interacciones simples ya están integradas en componentes estándar y se pueden modificar fácilmente a través del Inspector de objetos. Todo lo demás debe crearse y programarse manualmente. Casi el método principal para crear interacciones entre componentes es escribir reacciones a eventos. Pero hablaremos de eso un poco más adelante.

Tipos de propiedad

Antes de pasar a considerar los tipos de propiedad, es necesario comprender qué es realmente una propiedad. Es muy sencillo. Una propiedad es un campo de alguna estructura que contiene un valor específico. En función de cómo se establecen estos valores y de qué "naturaleza", es decir. La estructura tiene una propiedad, se distinguen varios tipos de propiedades.

Las propiedades simples son aquellas cuyos valores son números o cadenas (texto). Ejemplos de tales propiedades son las formas Izquierda y Superior. Estas propiedades determinan la posición del formulario en la pantalla (específicamente, su esquina superior izquierda). Los valores de estas propiedades son números. Un ejemplo de una propiedad con un valor de cadena es Título de un formulario. Esta propiedad almacena el título del formulario y se establece como texto sin formato.

2. Propiedades enumerables. Se trata de propiedades cuyos valores no se pueden establecer explícitamente, sino que sólo se pueden seleccionar de una lista. La lista de valores posibles se determina de antemano. Un ejemplo de dicha propiedad es la propiedad AutoSize de un formulario. Determina si el formulario cambiará de tamaño automáticamente para mostrar todos los componentes colocados en él. El valor es Verdadero o Falso. Otro ejemplo es la propiedad BorderStyle. Esta propiedad es responsable de la apariencia del formulario, así como del comportamiento de sus bordes, es decir. ¿Es posible cambiar el tamaño del formulario mientras se ejecuta el programa? Esta propiedad toma uno de 6 valores.

3. Propiedades anidadas. Estas son aquellas propiedades que tienen varias otras propiedades en su interior. En el Inspector de objetos, aparece un pequeño botón con un signo " a la izquierda de los nombres de dichas propiedades. + ", al hacer clic en él se revela esta propiedad (el signo cambia a " - "). Al hacer clic nuevamente, se "contrae" la propiedad. Hay dos tipos principales de propiedades anidadas: conjuntos y valores combinados. Los conjuntos son un conjunto de cualquier valor, cada uno de los cuales está "activado" o "desactivado". Valores combinados ​​son un conjunto de varias propiedades que pueden tener diferentes tipos de datos. Un ejemplo de un conjunto es la propiedad BorderIcons de un formulario: es responsable de los botones que se mostrarán en la barra de título de la ventana. de los botones se pueden mostrar en la pantalla o no; es muy conveniente establecer un conjunto de este tipo mediante un conjunto. Un ejemplo de un valor combinado es la propiedad Fuente (la mayoría de los componentes visuales la tienen): establece la fuente. el elemento. Incluye varias otras propiedades: nombre de fuente, color, estilo, tamaño, etc.

Gestión de propiedades

Administrar propiedades, es decir Puede cambiar sus valores de dos maneras: en el modo de diseño del programa (tiempo de diseño) y durante la ejecución (tiempo de ejecución). Por el momento nos interesa el modo diseño. Puede cambiar propiedades en el mismo Inspector de objetos. Si se trata de una propiedad simple, simplemente haga clic en la línea con el nombre de esta propiedad e ingrese un nuevo valor. Si se trata de una propiedad enumerable, entonces el valor se puede seleccionar de una lista. Algunas propiedades (como Izquierda, Superior, Ancho y Alto) se pueden cambiar con simples operaciones de arrastrar y soltar y cambiar el tamaño con el mouse.
Nota: Izquierda, Arriba - posición del formulario en la pantalla, Ancho - ancho, Alto - alto del formulario.

Cabe señalar que en el modo de diseño, es posible que no todas las propiedades del componente seleccionado estén disponibles a través del Inspector de objetos. Estas propiedades están disponibles en tiempo de ejecución y se pueden cambiar mediante programación.

Un poco sobre los componentes.

Para evitar confusiones o momentos incomprensibles, considero necesario hacer la siguiente aclaración. Todos los componentes se dividen en visuales y no visuales. Durante el tiempo de diseño (Tiempo de diseño), todos los componentes son visibles sin excepción. Pero durante el tiempo de ejecución, no todo. Aquellos que representan algún tipo de objeto visible (campo, botón, tabla, etc.) y son visuales. Los componentes no visuales no son visibles en la pantalla, pero se utilizan en el propio programa. Un ejemplo de un componente no visual es TApplicationEvents de la pestaña Adicional. Durante el diseño, este componente está presente en el formulario y se puede acceder a él a través del Inspector de objetos, pero mientras el programa se está ejecutando no es visible. En la mayoría de los casos, la propiedad Visible es responsable de la visibilidad de un objeto en la pantalla (Verdadero - visible, Falso - invisible).



Arriba