La explicación detallada de la clase Tapplication en Delphi TApplication es el tipo de aplicación Delphi. Esta clase hereda de TComponent y se declara en la unidad Forms. Y hay una Aplicación de objeto público en Formularios. Sus métodos y propiedades incluyen operaciones y propiedades básicas establecidas, como crear, ejecutar y destruir aplicaciones en el sistema operativo Windows, simplificando así la interfaz entre el usuario y el entorno de Windows al escribir aplicaciones de Windows en Delphi. TApplication encapsula las siguientes cuatro funciones: 1. Procesamiento de mensajes de Windows. 2. Aceleración de menús y procesamiento de teclado. 3. Manejo de excepciones. 4. Ayuda contextual en línea. A continuación se le presentarán las propiedades, métodos y eventos de uso común en TApplication. 1. Atributo 1. 1 atributo Activo atributo Activo indica si la aplicación está activa y tiene foco. La definición es la siguiente: PRperty Active: booleano; Active es una propiedad de sólo lectura. Activo es Verdadero cuando la aplicación está activa; Falso en caso contrario. El constructor de TAPplication establece Activo en Verdadero. Si una ventana o aplicación tiene el foco, entonces la aplicación está activa. La aplicación actual está inactiva cuando la ventana de otra aplicación se activa. Cuando se cierra la aplicación, el destructor de TApplication establece Activo en Falso. En la aplicación, puede usar un temporizador (TTimer) para verificar el valor del atributo Activo para determinar si la aplicación actual está activa para que se pueda realizar el procesamiento adecuado. Las operaciones especificadas también se pueden definir en el evento OnActive y el evento OnDeactive. 1.2 Propiedad DialogHandle La propiedad DialogHandle proporciona un mecanismo para que las aplicaciones Delphi utilicen cuadros de diálogo que no sean de Delphi. La definición es la siguiente: propiedad DialogHandle: HWnd; cuando use la función API CreateDialog para crear un cuadro de diálogo no modal, debe usar DialogHandle y debe ver los mensajes en el bucle de mensajes de la aplicación para realizar las operaciones correspondientes. Por ejemplo, cuando un cuadro de diálogo no modal recibe un mensaje de activación (WM_NCACTIVATE), su identificador se puede asignar a DialogHandle, y cuando el cuadro de diálogo recibe un mensaje de desactivación, DialogHandle se establece en 0. 1.3 Atributo ExeName El atributo ExeName contiene el nombre del archivo ejecutable de la aplicación y la información de ruta. Se define de la siguiente manera: propiedad ExeName: cadena; ExeName es una propiedad de solo lectura. Utilice ExeName para obtener el nombre del archivo ejecutable de la aplicación. Este es un atributo muy útil. Por ejemplo, al ejecutar la aplicación f:/media/myapp.exe en el CD, es posible que necesite acceder a los archivos en el directorio f:/media/data/ o determinar la letra de la unidad donde se encuentra la aplicación. En este momento, puede utilizar las funciones ExtractFilePath y ExtractFileName proporcionadas por Delphi para analizar el atributo ExeName y obtener la información requerida. 1.4 Identificador de atributo El identificador de atributo proporciona acceso al identificador de la ventana principal de la aplicación. La definición es la siguiente: propiedad Handle: HWND La propiedad Handle debe usarse al llamar a una función API de Windows que requiere un identificador de ventana principal. Por ejemplo, una biblioteca de vínculos dinámicos (DLL) en una aplicación puede necesitar un identificador de ventana principal para que pueda aparecer y pasar a primer plano. Utilice Application.Handle para formar varias ventanas de la aplicación, de modo que estas ventanas se puedan minimizar, restaurar, habilitar o deshabilitar en la aplicación. Nota: Al escribir una biblioteca de vínculos dinámicos que utiliza formularios VCL, el identificador de la ventana principal en el programa principal en ejecución debe asignarse a la propiedad Application.Handle de la biblioteca de vínculos dinámicos. Esto hace que la forma de la biblioteca de enlaces dinámicos pase a formar parte de la aplicación principal. Es importante señalar que nunca debes asignar un valor a Application.Handle en una aplicación EXE. 1.5 Atributo HelpFile El atributo HelpFile especifica el nombre del archivo utilizado por la aplicación para mostrar el contenido de ayuda. La definición es la siguiente: propiedad HelpFile: cadena Usar HelpFile es para que la aplicación tenga un archivo de ayuda usando el sistema de ayuda estándar de Windows. Windows muestra el archivo de ayuda especificado por la propiedad HelpFile. Para que su aplicación logre esto, debe asignar a la propiedad HelpFile un valor de un nombre de archivo en tiempo de ejecución o especificar un archivo de ayuda en la página Aplicación del cuadro de diálogo Proyecto|Opciones en tiempo de diseño. De forma predeterminada, HelpFile es una cadena vacía ('') y los métodos de ayuda de la aplicación ignoran todos los intentos de mostrar ayuda. Si HelpFile contiene algún contenido, el método del tema de Ayuda abrirá el sistema de Ayuda de Windows para proporcionar ayuda en línea según el nombre del archivo. Nota: Si se especifica el archivo de Ayuda de la ventana activa, ese archivo se mostrará con preferencia al archivo de Ayuda de la aplicación. 1.6 Sugerencia de atributo La sugerencia de atributo especifica la cadena de texto que aparece en el cuadro de sugerencia de ayuda. La definición es la siguiente: propiedad Hint: cadena; La propiedad TApplication.Hint es el valor de Hint del control o elemento de menú por el que se mueve el mouse. A este atributo también se le puede asignar un valor de cadena que proporciona acción, error u otra información al usuario. Por lo tanto, el uso de la propiedad Hint también puede: transferir información de solicitud desde el control a otra área de visualización, por ejemplo, mostrar la solicitud en la barra de estado a través del controlador de eventos OnHint. En este momento, se lee el atributo Sugerencia. Describe brevemente el estado de la aplicación cuando está realizando una acción. En este momento, el atributo Sugerencia está configurado. El mensaje de ayuda aparece cuando ocurre el evento OnHint. Por lo tanto, incluso si a la propiedad Hint de TApplication se le asigna el título de la barra de estado, por ejemplo, el título del control de la barra de estado muestra el valor de cadena actual de la propiedad Hint, debe atribuirse al evento OnHint. La cadena de pistas consta de dos partes: pista corta y pista larga. Los mensajes breves se utilizan para mensajes emergentes concisos; los mensajes largos y los mensajes cortos están separados por una barra vertical "|" y se utilizan para mostrar información de mensajes más detallada en la barra de estado. Puede utilizar las funciones de cadena GetShortHint y GetLongHint proporcionadas en los controles de la unidad para obtener sugerencias breves y largas del atributo Hint. Nota: Cuando una aplicación proporciona información al usuario sobre la ocurrencia de un evento configurando la propiedad Hint, debe recordarse que, de forma predeterminada, cuando el mouse se mueve sobre un control, la cadena Hint se restablece al valor de la propiedad Hint. del mando. 1.7 Propiedad HintHidePause La propiedad HintHidePause especifica el intervalo de tiempo antes de que se oculte el mensaje de ayuda antes de que el mouse se haya alejado del control o elemento del menú. Se define de la siguiente manera: propiedad HintHidePause: entero; utilice HintHidePause para especificar el tiempo de espera en milisegundos. Esta propiedad se establece en 2500 milisegundos (2,5 segundos) en el constructor de TApplication. La sugerencia de ayuda para un control o elemento de menú se especifica en la propiedad Sugerencia. Nota: De forma predeterminada, el valor de HintHidePause debe estar predeterminado para que sea de 3 a 5 veces el valor del atributo HintPause. 1.8 Propiedad MainForm La propiedad MainForm identifica de forma única el formulario principal de la aplicación. Se define de la siguiente manera: propiedad MainForm: TForm El formulario especificado por la propiedad MainForm no es necesariamente el mismo que el de la ventana principal de la aplicación. El valor de la propiedad MainForm debe ser el primer formulario entre todos los formularios creados por el método CreateForm, pero es posible que el formulario no sea la ventana principal de la aplicación. Al crear un nuevo proyecto, el valor del atributo MainForm se establece automáticamente en Form1. En tiempo de diseño, puede especificar uno de varios formularios como MainForm a través de la página Formularios en el cuadro de diálogo Proyecto|Opciones. La propiedad MainForm no se puede modificar en tiempo de ejecución porque la propiedad es de solo lectura. El formulario principal es el primer formulario creado por el tema de la aplicación. La aplicación finaliza cuando se cierra el formulario principal. En una aplicación, puede llamar al método Application.MainForm.Close para finalizar la aplicación. Puede obtener los valores de propiedades como Application.MainForm.Top y Application.MainForm.Left para determinar la posición y el tamaño del archivo actual. ventana activa. 1.9 Propiedad ShowMainForm La propiedad ShowMainForm determina si se mostrará el formulario principal cuando se inicie la aplicación. Se define de la siguiente manera: propiedad ShowMainForm: booleana. La aplicación utiliza la propiedad ShowMainForm para controlar si se muestra su formulario principal y cuándo. El constructor de TApplication establece ShowMainForm en True. De forma predeterminada se mostrará el formulario principal, como se especifica en la propiedad MainForm. Si necesita ocultar el formulario principal cuando se inicia la aplicación, debe configurar ShowMainForm en False antes de llamar a Application.Run en el archivo principal del proyecto y asegurarse de que el valor de la propiedad Visible del formulario principal sea False. Esto es útil en muchas implementaciones de servidores de automatización OLE, como ocultar el formulario principal del programa del servidor al iniciar el servicio de automatización. Además, si necesita mostrar una imagen flash (Flash) cuando se inicia la aplicación y hacer algunos preparativos para el entorno de la aplicación, y también necesita deshabilitar la visualización del formulario principal, esto también se puede lograr utilizando el atributo ShowMainForm. Por ejemplo, cuando se inicia Delphi, la visualización del formulario principal está deshabilitada. 1.10 Atributo Terminado El atributo Terminado informa si el programa ha recibido el mensaje de Windows WM_QUIT que finaliza el programa. La definición es la siguiente: propiedad Terminada: booleana Terminada es una propiedad de sólo lectura. Esta propiedad se utiliza principalmente al llamar al método ProcessMessages para que la aplicación no tenga que dejar de intentar procesar mensajes de Windows. Cuando el método ProcessMessages recibe el mensaje WM_QUIT, Terminated se establecerá en True. Las aplicaciones Delphi siempre reciben el mensaje WM_QUIT porque el formulario o aplicación principal está cerrado, o porque se llama al método Terminate. Cuando una aplicación realiza una operación muy intensiva que consume muchos recursos del sistema, se debe llamar periódicamente al método Application-on.ProcessMessages y se debe verificar la propiedad Application.Terminate para determinar si es necesario finalizar la operación para finalizar la aplicación. . 1.11 Propiedad UpdateFormatSettings La propiedad UpdateFormatSettings especifica si la aplicación actualiza automáticamente la configuración del formato cuando el usuario cambia la configuración del sistema. Se define de la siguiente manera: propiedad UpdateFormatSettings: booleano. El uso de la aplicación de propiedad UpdateFormatSettings puede controlar la actualización automática de la configuración de formato. El constructor de TApplication establece esta propiedad en True. La propiedad UpdateFormatSett-ings se verificará cuando la aplicación reciba el mensaje WM_WININICHANGE. Se recomienda utilizar la configuración de formato predeterminada, que es la configuración local de Windows. Puede configurar UpdateFormatSe-ttings en False para evitar cambiar la configuración de formato durante la ejecución de la aplicación Delphi. 1.12 Atributo UpdateMetricSettings El atributo UpdateMetricSettings indica si se deben actualizar las configuraciones relacionadas, como la fuente de la ventana de solicitud y el título del icono. La definición es la siguiente: propiedad UpdateMetricSettings: Booleana; la propiedad UpdateFormatSettings indica si los cambios en la configuración, como la fuente de la ventana de solicitud y el título del icono en el sistema, se reflejan en los cambios en la configuración relacionada en la aplicación. El constructor de TApplication establece el valor inicial de UpdateMetricSettings en True. 2. Método 2.1 Método BringToFront El método BringToFront establece la ventana activa más reciente en la aplicación al frente de todas las ventanas en el escritorio. Su definición es la siguiente: procedimiento BringToFront Utilice el método BringToFront para encontrar la ventana activa más reciente que pertenece al formulario principal y traerla al frente. El método BringToFront también puede probar y ver si una ventana es visible (Visible) y válida (Habilitada) antes de convertirse en la ventana más frontal. Por ejemplo, cuando una aplicación recibe correo, es posible que sea necesario activar un controlador especializado y colocarlo en primer plano en el escritorio de Windows. En este momento, puede llamar al método Application.BringToFront para lograr esto. 2.2 Método Método CreateForm El método CreateForm se utiliza para crear un nuevo formulario (formulario). Se define de la siguiente manera: procedimiento CreateForm(FormClass: TFormClass; var Reference); las aplicaciones Delphi siempre llamarán al método CreateForm. Por lo tanto, rara vez es necesario que los programadores llamen directamente al método CreateForm. Un proyecto típico de Delphi incluye una o más llamadas al método CreateForm en la parte del código principal del proyecto y controla automáticamente la creación del formulario cuando se utiliza el diseñador de formularios. También puede llamar al método CreateForm en tiempo de ejecución para crear dinámicamente un formulario. El método CreateForm crea un nuevo formulario especificado basado en el parámetro FormClass y asigna el formulario al parámetro variable Referencia. El propietario del formulario recién creado es el objeto Aplicación. La aplicación utilizará de forma predeterminada el primer formulario creado llamando a CreateForm como el formulario principal del proyecto. 2.3 Método HandleException El método HandleException proporciona un identificador predeterminado para las excepciones de la aplicación. Se define de la siguiente manera: procedimiento HandleException(Sender: TObject); El método HandleException es útil para autores de componentes específicos porque puede generar un evento que no tiene que responder a mensajes de Windows. Puede utilizar el controlador de eventos OnException en su aplicación para controlar otras operaciones de excepción en código personalizado. En el código de la aplicación, si la excepción omite todos los bloques de prueba, la aplicación llamará automáticamente al método HandleE-xception y mostrará un cuadro de diálogo que indica que ocurrió un error. A menos que el objeto de excepción sea EAbort, Han-dleException llamará al identificador OnException (si existe); de lo contrario, se llamará a ShowException para mostrar un cuadro de diálogo que indica un error. 2.4 Método UnhookMainWindow El método UnhookMainWindow se utiliza para liberar el programa colgado en el formulario principal mediante el método HookMainWindow. La definición es la siguiente: tipo TWindowHook = función (var Mensaje: TMessage): booleano del objeto; procedimiento UnhookMainWindow (Hook: TWindowHook); Utilice UnhookMainWindow para liberar la ventana de enlace. Especifique el procedimiento del cuadro de diálogo en el parámetro Gancho. El tipo TwindowHook es el parámetro para llamar al método HookMainWindow. Este parámetro es el puntero del método para llamar al programa de diálogo en un cuadro de diálogo que no sea de Delphi. Los programas de diálogo son similares a los programas de ventana en que procesan mensajes para cuadros de diálogo, pero la sintaxis es diferente. 3. Evento 3.1 Evento OnActivate El evento OnActivate ocurre cuando la aplicación se activa. La definición es la siguiente: tipo TNotifyEvent = procedimiento (Remitente: TObject) de la propiedad del objeto OnActivate: TNotifyEvent Utilice el evento OnActive para escribir un controlador de eventos para especificar un procesamiento especial cuando la aplicación se activa. Una aplicación de Windows se activa cuando se ejecuta inicialmente o cuando su foco se transfiere nuevamente a la aplicación actual desde otra aplicación de Windows. 3.2 Evento OnDeactivate El evento OnDeactivate ocurre cuando la aplicación queda inactiva. Se define de la siguiente manera: tipo TNotifyEvent = procedimiento (Remitente: TObject) de la propiedad del objeto OnDeactivate: TNotifyEvent puede activarse inmediatamente antes de que la aplicación se vuelva inactiva, completando así el procesamiento especial especificado en el controlador de eventos. El evento OnDeactive de la aplicación actual ocurre cuando el usuario pasa de la aplicación actual a otra aplicación. 3.3 Evento OnException El evento OnException ocurre cuando ocurre una excepción sin control en la aplicación. Se define de la siguiente manera: tipo TExceptionEvent = procedimiento (Remitente: TObject; E: Excepción) de la propiedad del objeto OnException: TExceptionEvent Puede usar el evento OnException para cambiar la acción predeterminada cuando ocurre una excepción sin un controlador en la aplicación. En el método TApplication.HandleException, el controlador de eventos OnException se llama automáticamente. El evento OnException se utiliza únicamente para manejar excepciones que ocurren durante el procesamiento de mensajes. Las excepciones que ocurren antes o después de ejecutar Application.Run no provocarán que se produzca el evento OnException. Si se ignora una excepción en el bloque try del código de la aplicación, la aplicación llamará automáticamente al método HandleException. A menos que el objeto de excepción sea un EAbort, HandleException llamará al identificador OnException (si existe); de lo contrario, se llamará a ShowException para mostrar un cuadro de diálogo que indica un error. El tipo TExceptionEvent es el tipo de evento OnException, que apunta a un método para manejar excepciones en la aplicación. El parámetro Remitente es el objeto que genera la excepción y el parámetro E es el objeto de excepción. 3.4 Evento OnHelp El evento OnHelp ocurre cuando la aplicación recibe una solicitud de ayuda. La definición es la siguiente: escriba THelpEvent = función (Comando: Word; Datos: Entero largo; var CallHelp: booleano): propiedad booleana del objeto OnHelp: Utilice OnHelp para escribir un controlador de eventos para completar el procesamiento especial cuando haya una solicitud; por ayuda. El método HelpContext y el método HelpJump generan automáticamente el evento OnHelp. Configure CallHelp en True para permitir que VCL llame a WinHelp después de que ocurra el evento; configure CallHelp en False para evitar que VCL llame a WinHelp. Todos los métodos relacionados con la ayuda en las aplicaciones Delphi pasan por el evento OnHelp. Se llama a WinHelp solo cuando el parámetro CallHelp en el evento OnHelp devuelve True o cuando el evento OnHelp no está asignado a un identificador válido. 3.5 Evento OnHint Cuando el puntero del mouse se mueve a través de un control o elemento de menú y el control o elemento de menú puede mostrar un mensaje de ayuda, se produce el evento OnHint. La definición es la siguiente: tipo TNotifyEvent = procedimiento (Remitente: TObject) de la propiedad del objeto OnHint: TNotifyEvent; el controlador de eventos escrito con OnHint puede realizar la operación especificada cuando ocurre el evento OnHint. Cuando el usuario coloca el puntero del mouse sobre un control y el valor de la propiedad Hint del control no es una cadena vacía (''), se producirá el evento OnHint. El evento OnHint generalmente se usa para mostrar el valor de la propiedad Hint de un control o elemento de menú como el título de un control del panel (como TStatusBar), por lo que el panel se usa como barra de estado. Cuando se produce el evento OnHint, el atributo Hint generalmente se especifica como una sugerencia de ayuda y una sugerencia más larga que se muestra en otros lugares. 3.6 Evento OnIdle El evento OnIdle ocurre cuando la aplicación queda inactiva. La definición es la siguiente: escriba TIdleEvent = procedimiento (Remitente: TObject; var Done: Boolean) de la propiedad del objeto OnIdle: TIdleEvent Utilice OnIdel para escribir un controlador de eventos para completar la operación especificada cuando la aplicación esté inactiva. Una aplicación está inactiva cuando no está ejecutando ningún código. Por ejemplo, una aplicación está inactiva mientras espera la entrada del usuario. El tipo TIdelEvent es el tipo de evento OnIdel, que apunta a un método que se ejecuta cuando la aplicación está inactiva. El objeto TIdelEvent tiene una variable Hecho que por defecto es Verdadero. Cuando Done es True, se llamará a la función WaitMessage de la API de Windows cuando OnIdel regrese. WaitMessage hace que otras aplicaciones obtengan el control hasta que aparece un nuevo mensaje en la cola de mensajes de la aplicación. Cuando el parámetro Listo es Falso y la aplicación no está ocupada, la aplicación no permitirá que otras aplicaciones obtengan el foco de control. Cuando la aplicación queda inactiva, el evento OnIdel ocurre solo una vez y es posible que el siguiente evento OnIdel no ocurra hasta que el parámetro Done se establezca en True. La configuración de Hecho en Falso por parte de la aplicación elimina recuentos erráticos de tiempo de CPU que pueden afectar el rendimiento general del sistema. 3.7 El evento OnMessage se genera cuando la aplicación recibe un mensaje de WINDOWS. Se define de la siguiente manera: tipo TMessageEvent = procedimiento (var Msg: TMsg; var Handled: Boolean) de la propiedad del objeto OnMessage: TmessageEvent se utiliza para recibir mensajes de WINDOWS. Puede recibir todos los mensajes enviados por el programa a WINDOWS. Este evento se genera cuando la aplicación recibe un mensaje. La variable Msg es de tipo mensaje WINDOWS.